The s:Match function tries to find a pattern, but if the found one is in a string or comment, it fails. However, it's possible that beyond the string, there's a comma or something else that *also* fits the pattern and will not be found. There seems to have been an attempt to fix this issue by matching in reverse with the unused `s:MatchLast` function, but it's not really used anywhere, so it was removed. The current implementation tries to match the same pattern on the rest of the string after failing once. Tests and documentation are needed. There may also be issues with multibyte, not sure.
Unsure if this won't break anything else :/.