Регулярные выражения не являются достаточно мощными для этой задачи, но используются, например, в EBFN для повышения выразительности грамматики.Вы могли бы рассмотреть синтаксический анализатор сверху вниз (сформированный через рекурсивные вызовы), чтобы проанализировать ваш ввод.Это легко реализовать на всех языках, которые допускают взаимно рекурсивные вызовы.Требуется грамматика с некоторыми ограничениями (см. Википедию по этому поводу, если вы заинтересованы).На первый взгляд ваша грамматика должна быть LL (1), т. Е. Требует 1 токен.