Regex.Matchメソッドが正規表現にマッチする最初の箇所を返すのに対し、Regex.Matchesメソッドマッチする全ての箇所を返します。

Matchesメソッドはマッチする全ての箇所をMatchクラスのコレクション型MatchCollectionで返します。 このコレクションを列挙することにより、マッチした個々の箇所に対応するMatchインスタンスを参照することができます。 マッチする箇所がなければ、空のコレクションが返されます。

次のコードでは、正規表現を使って文字列中に含まれる4文字以上の単語をすべて探索し、表示しています。

(この例で用いている正規表現"\w{4,}"は、「アルファベット・かな・漢字などの文字("\w")が、4文字以上続く("{4,}")箇所」を表す正規表現です。)

Regex.Matchesメソッドを使って文字列中の正規表現にマッチする部分をすべて取得して列挙する
Imports System
Imports System.Text.RegularExpressions

Class Sample
  Shared Sub Main()
    Dim text As String = "The quick brown fox jumps over the lazy dog すばしっこい 茶色の 狐は のろまな 犬を 飛び越える"

    ' 正規表現にマッチする箇所をすべて取得する
    Dim matches As MatchCollection = Regex.Matches(text, "\w{4,}")

    ' マッチした箇所をひとつずつ列挙して表示する
    For Each m As Match In matches
      Console.WriteLine("{0,-10} ({1}, {2})", m.Value, m.Index, m.Length)
    Next
  End Sub
End Class
実行結果
quick      (4, 5)
brown      (10, 5)
jumps      (20, 5)
over       (26, 4)
lazy       (35, 4)
すばしっこい     (44, 6)
のろまな       (58, 4)
飛び越える      (66, 5)

Matchインスタンスからマッチ結果を取得する方法については§.マッチ箇所の探索 (Regex.Match)を参照してください。

Matchesメソッドが返すMatchCollectionクラスは、.NET Framework 4.5の時点でもIEnumerable<Match>を実装しておらず非ジェネリックコレクションとなっています。 列挙を行う際には必要に応じてCast<Match>()メソッドを用いるなど、扱いに注意してください。