in reply to specific /\G/g troubles

\G forces the regular expression to match at the point where the last match left off, or not at all. Looking at your sample data, the regex does not match where the last match left off; it matches later in the string. You could fix it so the end of each match coincides with the beginning of the next match, but it would be simpler to just remove the \G. I don't think it's useful in this case.