In response to Wilma from the Cave Age : that's why functions can take a third argument to specify the prefix to skip. All is in the documentation, but not that easy to grasp as it should be for such a general-purpose module.
This works great for extracting balanced strings, BUT....
Read the documentation closely, since it does some unexpected (not functional-programming-friendly) modification of arguments in scalar context.
Once I read the documentation and realized what was going on, I got it working as I needed it. It can be a very good alternative to Parse::RecDescent when you're concerned about balanced parenthesis, quotes, brackets, etc. but otherwise simple grammars.