質問: 正規表現を業務で使う過程で、greedy matchingとlazy matchingの違いについて、以下を参考に調べる機会がありました。 例えば `abc123` というインプットがあったときに、 `[a-z]+\d+` のようにすると、greedy matchingの性質によって `abc123` 全体がマッチします。これは理解できます。 これに対し、lazy matchingとなるよう `[a-z]+?\d+?` のようにすると、 `abc1` だけがマッチするそうですが、このときマッチするのが `c1` とはならない理由がよくわかりません。 lazy matchingの場合、どのような仕組みでマッチするかどうかを判断しているのでしょうか?
回答: 文字列の先頭から、マッチするかどうかを調べていくからです。