using System; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var p = new[] { @"aaa[0-9]{2}\.zip", @"bbb[0-9]{2}\.zip" }; var pat = new Regex($"({string.Join(")|(", p)})"); var match = pat.Match("We have bbb12.zip match"); //var grps = match.Groups.Cast(); for (var n=1; n <= p.Count(); n++) { if (match.Groups[n].Success) { Console.Write("{0} group matched, the pattern is {1}", n, p[n-1]); break; } } } }