通常の正規表現関数は、‘\|’や繰り返しの構文要素を処理するために必要なときだけバックトラッキングを行いますが、何らかのマッチが見つかるまでの間だけこれを継続します。そして成功した後に見つかった最初のマッチを報告します。
このセクションでは正規表現にたいしてPOSIX標準で指定された完全なバックトラッキングを処理する他の検索関数を説明します。これらはPOSIXが要求する最長マッチを報告できるようにすべての可能なマッチを試みて、すべてのマッチが見つかるまでバックトラッキングを継続します。これは非常に低速なので、本当に最長マッチが必要なときだけこれらの関数を使用してください。
名前とは裏腹にPOSIXの検索とマッチ関数は、POSIXではなくEmacsの正規表現を使用しています。Emacsの正規表現 vs POSIXの正規表現を参照してください。さらにこれらの正規表現は非欲張りな繰り返し演算子(non-greedyを参照)を正しくサポートしていません。これはPOSIXのバックトラッキングが非欲張りな繰り返しのセマンチックと競合するからです。
これはre-search-forward
と似ているが、正規表現マッチングにたいしてPOSIX標準が指定する完全なバックトラッキングを行う点が異なる。
これはre-search-backward
と似ているが、正規表現マッチングにたいしてPOSIX標準が指定する完全なバックトラッキングを行う点が異なる。
これはlooking-at
と似ているが、正規表現マッチングにたいしてPOSIX標準が指定する完全なバックトラッキングを行う点が異なる。
これはstring-match
と似ているが、正規表現にたいしてPOSIX標準が指定する完全なバックトラッキングを行う点が異なる。