¿Regex con expresión recursiva para que coincida con llaves anidadas?
Estoy tratando de hacer coincidir texto comosp { ...{...}... }
, donde las llaves se permiten anidar. Esto es lo que tengo hasta ahora:
my $regex = qr/
( #save $1
sp\s+ #start Soar production
( #save $2
\{ #opening brace
[^{}]* #anything but braces
\} #closing brace
| (?1) #or nested braces
)+ #0 or more
)
/x;
Simplemente no puedo hacer que coincida con el siguiente texto:sp { { word } }
. ¿Alguien puede ver lo que está mal con mi expresión regular?