in reply to Regex Question

The regex seems to be /"[^"\r\n]*"/.

If you apply that regex once, you get "string one". If you apply it again, you get the same match.

If you apply it with the /g modifier, you get the same first match, and it will set pos to the position after the second quote. When you match a second time, it will start to look for a match starting from pos.

So this way you'll never get overlapping matches. If that is what you want, you can use this regex:

m/"(?=([^"\r\n]*"))/g

Which will put even overlapping matches consecutively into $1.