正規表現の異なる部分に同じグループ名を与えることもできます。 この場合、それぞれに部分にマッチした箇所は同じグループ名を使って参照することができます。 これにより、正規表現中で同じ意味を持つ部分を同一の名前でグループ化することができ、それらのいずれかにマッチした箇所を単一のグループ名で抽出することができます。
正規表現の異なる部分を同じグループ名で参照・抽出する
      using System;
using System.Text.RegularExpressions;
class Sample {
  static void Main()
  {
    var text = "02/29/2012 2016-02-29";
    // mm/dd/yyyy形式またはyyyy-mm-dd形式の日付
    // (それぞれの年部分をグループ名"y"でグループ化)
    var pattern = @"\d{2}/\d{2}/(?<y>\d{4})|(?<y>\d{4})-\d{2}-\d{2}";
    foreach (Match m in Regex.Matches(text, pattern)) {
      // グループ名"y"にマッチした部分を表示
      Console.WriteLine(m.Groups["y"].Value);
    }
  }
}
       
      実行結果
      2012 2016