in reply to recursive pattern

What's with people not checking for errors and warnings when their code doesn't work?

Use of uninitialized value $+{"intern"} in regexp compilation at a.pl +line 6.

It actually fails when any recursion is needed. The initial expression doesn't actually exercise the recursive path, which is why it works.

The problem results in $cparens containing

(?x-ism: (?<intern> \< (?: [^<>]++ | (?) )*+ \> ) )
Replace
(?$+{intern})
with
(?&intern)