I also wanted to abuse the regex system with twelve-level-deep s///e recursion to implement my Pentominos Solving Quine, but instead found that perl would crash horribly if it tried to recurse there.
in reply to Being Forced to Fork with Nested Regular Expressions
The alternative method uses pos() as an lvalue and m/(?=)/g as in the loop above, to allow me to iterate through matches yet not recurse via any regex code-evaluating trick. I do recurse, but not by getting the regex to do the call.
for $pattern (@patterns)
while ($data =~ m/(?=$pattern)/g)
do_recurse($data, pos($data), $pattern);
# $data is the source
# pos($data) is the found place in the souce
[ e d @ h a l l e y . c c ]