Decodificação de expressão regular com repetições aninhadas

PHP Hard regex

Tarefa «Decodificação de expressão regular com repetições aninhadas»

Dada uma string contendo uma expressão regular codificada em um formato especial: letras do alfabeto latino (a-z) e dígitos (2-9) entre parênteses, indicando o número de repetições do caractere ou grupo anterior. Parênteses aninhados são permitidos. É necessário expandir todas as repetições e exibir a expressão regular resultante na notação padrão (sem parênteses com número, apenas caracteres e quantificadores {n}). Por exemplo, 'a3' se torna 'a{3}', '(ab)2' -> '(ab){2}', e '((a2)2b)2' -> '((a{2}){2}b){2}'. É garantido que a string de entrada é válida, o comprimento não excede 1000 caracteres e a profundidade de aninhamento não é maior que 10.

Formato de Entrada

Uma única string S (1 ≤ |S| ≤ 1000), consistindo em letras latinas minúsculas, dígitos de 2 a 9 e parênteses.

Formato de Saída

Uma única string — a expressão regular expandida na notação padrão.

Exemplos

Exemplo 1

ENTRADA
a3
SAÍDA
a{3}

Exemplo 2

ENTRADA
0 0 4 0 0 3
SAÍDA
{4} {3}

Exemplo 3

ENTRADA
0
SAÍDA

Exemplo 4

ENTRADA
(ab)2
SAÍDA
(ab){2}

Exemplo 5

ENTRADA
1 1 4 5 7 1
SAÍDA
{4} {5} {7}
main.php