Расшифровка регулярного выражения с вложенными повторениями

PHP Сложный regex

Задача «Расшифровка регулярного выражения с вложенными повторениями»

Дана строка, содержащая закодированное регулярное выражение в специальном формате: буквы латинского алфавита (a-z) и цифры (2-9) в круглых скобках, обозначающие количество повторений предыдущего символа или группы. Вложенные скобки разрешены. Необходимо раскрыть все повторения и вывести получившееся регулярное выражение в стандартной нотации (без скобок с числом, только символы и квантификаторы {n}). Например, 'a3' превращается в 'a{3}', '(ab)2' -> '(ab){2}', а '((a2)2b)2' -> '((a{2}){2}b){2}'. Гарантируется, что входная строка корректна, длина не превышает 1000 символов, глубина вложенности не более 10.

Формат ввода

Единственная строка S (1 ≤ |S| ≤ 1000), состоящая из строчных латинских букв, цифр 2-9 и круглых скобок.

Формат вывода

Одна строка — раскрытое регулярное выражение в стандартной нотации.

Примеры

Пример 1

ВВОД
a3
ВЫВОД
a{3}

Пример 2

ВВОД
0 0 4 0 0 3
ВЫВОД
{4} {3}

Пример 3

ВВОД
0
ВЫВОД

Пример 4

ВВОД
(ab)2
ВЫВОД
(ab){2}

Пример 5

ВВОД
1 1 4 5 7 1
ВЫВОД
{4} {5} {7}
main.php