... our @memoList; our $rxNest; $rxNest = qr {(?x) ( \( (?: (?>[^()]+) | (??{$rxNest}) )* \) ) (?{push @memoList, $+}) ... if($string =~ /$rxNest/) { print " Match succeeded\n"; print " $_\n" for @memoList; } else { print " Match failed\n"; } ...