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

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

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

Class Sample
  Shared Sub Main()
    Dim text As String = "2016/01/23 2016-04-05"

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

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