my $np; $np = qr{ \( (?: (?> [^()]+ ) | (??{ $np }) )* \) }x;