Я искал способ сопоставить сбалансированную скобку в регулярном выражении и нашел способ в Perl, который использует рекурсивное регулярное выражение:
my $re;
$re = qr{
\(
(?:
(?> [^()]+ ) # Non-parens without backtracking
|
(??{ $re }) # Group with matching parens
)*
\)
}x;
из сайта регулярного выражения perl .
Есть ли способ сделать это в Ruby или аналогичном языке?
UPDATE
Для заинтересованных здесь есть интересные ссылки:
Руководство Oniguruma - от ответа Саввы.
Прагматический программист Ruby 1.9 Regular Expressions Пример главы