最左最長マッチの規則

POSIX 基本および拡張正規表現では、特定の位置で正規表現のマッチを行う方法が 2 つ以上存在することがよくあり、以下のようにして「最良の」マッチが決定する。

  1. 最も左のマッチを検索する。ここでマッチ候補が 1 つだけであれば、それを返す。

  2. 最左マッチ候補の中で最長のマッチを検索する。候補が 1 つに絞られれば、それを返す。

  3. マーク済み部分式がなければ残りの候補に優劣をつけることはできないので、最初の候補を返す。

  4. この時点の候補から、最左位置で 1 番目の部分式にマッチしたマッチを検索する。そのようなマッチが 1 つだけであれば、それを返す。

  5. この時点の候補から、1 番目の部分式に対する最長のマッチを検索する。そのようなマッチが 1 つだけであれば、それを返す。

  6. 2 番目以降の部分式について 4 から 5 を繰り返す。

  7. マッチの候補が 2 つ以上残っていればそれらに優劣をつけることはできないので、最初の候補を返す。