You asked too many questions and your node is too long so I will respond to only one question.
Con(tains i(mbalan(ced Br(ack)ets, )one c)lose missing Match succeeded (ack) (ced Br(ack)ets, ) (mbalan(ced Br(ack)ets, )one c) (ack) (ced Br(ack)ets, ) (mbalan(ced Br(ack)ets, )one c)
The engine started matching the initial (, successfully matched those three complete (...) strings, then found that it couldn't find a ) to complete the ( that was already in progress. It skipped to the next ( and tried again. Then it fully succeeded.
If you wanted it to fail because there were unbalanced parens, you'd need to have asserted that there were to be no parens leading or following the balanced part. I thinkg that's what you said you were doing later down your node but like I said, it was too long and I didn't read the rest of it.
Oh yeah, when you "put it all in one," you used ^ which asserted that you were at the beginning of the string. You can't write a regex that says $recurse = qr/^...(??{ $recurse })/ because when you recurse you aren't at the beginning of the string nymore.
⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊
In reply to Re: Recursive regular expression weirdness
by diotalevi
in thread Recursive regular expression weirdness
by johngg
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |