Regex.Matchesメソッドではマッチした箇所すべてが同時に返されますが、例えば、Regex.Matchメソッドで文字列中の最初にマッチする箇所を取得したのち、一旦何らかの処理を行ってから次のマッチ箇所に移動して処理を継続したいといった場合には、NextMatchメソッドを使うことができます。
マッチ箇所が多数になると想定される場合、Regex.Matchesメソッドではそのすべての探索を終えるまで結果が返されませんが、NextMatchメソッドを使うと、まずRegex.Matchメソッドで最初にマッチする箇所を探索し、その後NextMatchメソッドでマッチする箇所を逐次処理していく、といったことができます。
次の例では、正規表現にマッチする全ての箇所を、Regex.Match+Match.NextMatchメソッドと、Regex.Matchesメソッドを使って取得した場合の違いを示しています。 結果はどちらも同じになりますが、マッチ箇所を逐次取得するか、一度に取得するかの違いがある点に注目してください。