regex-group() always returns a single string, so using it in xsl:for-each doesn't make much sense: though it's legal and won't do any harm, it suggests you're confused about the logic.
you say you want to process "each of the eventual (.*)//.", but that's surely regex-group(1) not regex-group(2).
Beyond that, I can't see immediately what's wrong - I can't see your input or your desired output or the various templates you are calling, so that's not surprising.
Author, XSLT 2.0 and XPath 2.0 Programmer\'s Reference