Кратко в заголовке описал проблему. Вопрос - что я делаю не так? Все решение в одном методе который с помощью регулярок слева направо ищет что он может решит, решает, вставляет результат решения в исходное выражение и вызывает сам себя с новым параметром