I have been looking for a way to match balanced parenthesis in a regex and found a way in Perl, that uses a recursive regular expression:
my $re;
$re = qr{
(
(?:
(?> [^()]+ ) # Non-parens without backtracking
|
(??{ $re }) # Group with matching parens
)*
)
}x;
from the perl regular expression site .
Is there a way to do this in Ruby or a similar language?
UPDATE:
For those interested here are some interesting links:
Oniguruma manual - from Sawa's answer.
Pragmatic Programmers' Ruby 1.9 Regular Expressions Sample Chapter
See Question&Answers more detail:os