Group.Nameプロパティを参照すると、対応するグループ名を取得することができます。 Groupが名前を持たないグループを表す場合、Nameプロパティはグループ名の代わりにグループ番号を文字列形式で返します。 また、Groupがマッチ全体を表すグループを表す場合も、グループ番号0を文字列形式で返します。

Group.Nameプロパティは、.NET Framework 4.7以降・.NET Standard 2.1以降で使用することができます。 それ以前のバージョンではGroupインスタンスから直接グループ名を取得することはできないため、Regex.GroupNameFromNumberメソッドを使うなどする必要があります。

Group.Nameプロパティでグループの名前を取得する .NET Standard 2.1/.NET Framework 4.7
Imports System
Imports System.Text.RegularExpressions

Class Sample
  Shared Sub Main()
    Dim text As String = "2016-02-29"
    Dim pattern As String = "(?<year>\d{4})-(?<month>\d{2})-(\d{2})" ' yyyy-mm-dd

    Dim re As New Regex(pattern)
    Dim m As Match = re.Match(text)

    If m.Success Then
      For Each g As Group In m.Groups
        ' Nameプロパティでマッチ元となったグループ名を取得する
        Console.WriteLine($"{g.Name} => {g.Value}")
      Next
      Console.WriteLine()

      ' .NET Framework 4.7/.NET Standard 2.1より前のバージョンではNameプロパティが存在しないため、
      ' Regex.GroupNameFromNumberメソッドを使ってグループ番号からグループ名を取得する必要がある
      For number As Integer = 0 To m.Groups.Count - 1
        Console.WriteLine($"{re.GroupNameFromNumber(number)} => {m.Groups(number).Value}")
      Next
    End If
  End Sub
End Class
実行結果
0 => 2016-02-29
1 => 29
year => 2016
month => 02

0 => 2016-02-29
1 => 29
year => 2016
month => 02