()および(?<name>)ではグループ番号やグループ名を与えたグループ化がなされますが、正規表現要素(?:)を使うと、グループ番号やグループ名を持たないグループ(キャプチャされないグループ・非キャプチャグループ)を構成することができます。 非キャプチャグループは、例えば正規表現を記述する上で()を使いたいが、Match.Groupsプロパティ等で処理する必要のない・除外したいグループを構成したいような場合に用いることができます。

次の例では、yyyy-mm-dd形式またはyyyy/mm/dd形式の日付にマッチする文字列を探索し、yyyy年mm月dd日の形式に置換しています。 この際、区切り文字の正規表現(/|-)を非キャプチャグループとすることでグループ化から除外しています。 これにより、年・月・日のそれぞれ対応するグループのみにグループ番号1・2・3が割り当てられます。

非キャプチャグループを含む正規表現を使ってyyyy-mm-ddまたはyyyy/mm/dd形式の日付をyyyy年mm月dd日の形式に置換する
using System;
using System.Text.RegularExpressions;

class Sample {
  static void Main()
  {
    var text = "2016/01/23 2016-04-05";

    // yyyy-mm-dd形式またはyyyy/mm/dd形式の日付
    // (年月日部分のみがグループ化され、区切り文字の部分はグループ化から除外されるため
    //  グループ番号1=年、番号2=月、番号3=日となる)
    var pattern = @"(\d{4})(?:/|-)(\d{2})(?:/|-)(\d{2})";

    // 上記の正規表現にマッチする日付をyyyy年mm月dd日の形式に置換する
    Console.WriteLine(Regex.Replace(text, pattern, "$1年$2月$3日"));
  }
}
実行結果
2016年01月23日 2016年04月05日