ごめん。以下のように例をリフェーズしました。次の段落でmaryが最初に出現した直後に番号 ( 1 )を一致させるにはどうすればよいですか (私の場合、3 つのグループはすべて必須です)。
Regex.Match("Do you know 3453 **Mary** has a little lamb 1 and Mary likes dancing 2."
, @"(Do).*(Mary).*(\d)");
現在は 2 番目のMaryと一致しており、その結果、3 番目のグループは1ではなく2をキャプチャしました。