Мне уже давно не пора спать, поэтому я могу показаться странным в этом ответе.
Мне кажется, что у вас все настроено неправильно: вы сравниваете входную строку со списком шаблонов. По логике, вы должны сопоставлять каждый шаблон в списке с входной строкой и определять соответствие. Должно быть довольно просто создать массив шаблонов Regex, анализируя XML-файл. Затем вы можете перебирать массив и сопоставлять каждое регулярное выражение с вашей входной строкой.
Кроме того, зачем вообще нужны групповые символы? Подстановочные знаки можно рассматривать как подмножество Regex, поэтому у вас уже есть все функции сопоставления подстановочных знаков, инкапсулированные в объекте Regex.
Тем не менее, больше данных о типе ввода / групповых символах может оказаться полезным для понимания вашего вопроса.