6.17 ネストされている文字列に対して、マッチングを行う

関数呼び出しの引数など、デリミタで囲まれているネストされた文字列に対して、マッチングを行いたい。

マッチング時にパターンを展開して再起的に処理を行う。

my $np;
$np = qr{
                    \(
                    (?:
                        (?> [^()]+ )      # バックトラックを行わない非格納括弧でグループ化
                      |
                         (??{ $np })       # マッチング用丸括弧でグループ化
                    )*
                    \)
               }x;