次のフラグオプションが追加されています。行われる際、アルゴリズム函数に渡したmatch_results型インスタンスのlookbehind_limitメンバの値を「逆行できる限界」と見なすようになります。範囲でのみ行われるのでマッチしない。match.lookbehind_limitまで逆行できるのでマッチする。firstよりsearchを始める。マッチするようになります。※逆行限界を渡す手段としては少し不格好ですので、P1844の帰趨を見てちゃんとした方法に改める予定です。正規表現エンジンとフラグstd::regexは、次の6つの正規表現エンジンから選択する仕組みになっています(既定はECMAScript)。ある拡張とを追加したもの。\uxxxxのような表現も使用可能ではあるものの、現在のlocaleの文字集合にない文字が指定された場合どうなるのかは不明。expression相当。expression相当。awkPOSIXのawk相当。grepPOSIXのgrep相当。egrepPOSIXのegrep相当。SRELLにはこのような選択肢はなく、常にECMAScript互換のエンジンで動きます。この関係で、std::regexで定義されているフラグオプションのうち次のものは、たとえ指定してもSRELLでは無視されます。syntax_option_type(かつbasic_regexのflag_type)icaseとmultiline以外のすべてmatch_flag_typematch_anyformat_sedstd::regexのECMAScriptモードとSRELLとの違いは次の通りです。[=クラス名=]という表現」を追加。2018のRegExpの仕様に準拠。2017のRegExpの仕様に「固定幅の戻り読み」を追加。同じECMAScriptベースでありながらもstd::regexとSRELLとはどちらもどちらの上位互換になっていません。u16wregex以外の型は、入力文字列をUnicode値の連続として解釈します。使うと、入力文字列中の0x00~0xFFはそのままU+0000~U+00FFとして解釈されます。UnicodeのU+0000~U+00FFはISO-8859-1と同じですので、結果的にsrell::regexはISO-8859-1に対応しているとも言えます。srell::regexは、バイナリデータ中から特定のパターンを見つけ出すような場合にも使うことが出来ます。同じで、文字列中の0x00~WCHAR_MAXまでがそのまま同じ値のUnicode値として解釈されます。長考対策ECMAScriptの正規表現(およびその元となったPerlの正規表現)では通常、バックトラッキングと呼ばれる方法を使って照合が行われます。このバックトラッキング方式には、「量指定子(回数指定)が入れ子になっている正規表現」や「量指定子を伴う文字ないし文字クラスが連続していて、かつそれらが互いに排他的な集合になっていない正規表現」で検索を行うと、オートマトンが著しい長考に入ってしまうことがあるという問題が存在します。次のような例が有名です。/a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaaaaaaaaaaaaaaa/残念ながらこの現象に対しては、あらゆる状況に適用できる根本的な解決策というものが見つかっていません。するようになっています。回数の既定値は16777216(256の3乗)ですが、regex_search()やregex_match()に渡すbasic_regex型インスタンスのlimit_counter変数に任意の値を代入することで変更することも出来ます。2.002までu8-というprefixは、「char型の文字列をUTF-8文字列として扱うクラス型」であることを意味していました。C++20よりchar8_t型が導入されることが決まり、今後u8-というprefixは標準ライブラリでもchar8_t型用に使われるようになってゆくことが予想されます。2.100以降では「char型の文字列をUTF-8文字列として扱う」ことを意味するprefixをu8-からu8c-に変更しました。2.100以降、char8_t型と関連づけられるようになっています。お使いのコンパイラがchar8_tに未対応である場合、後方互換のためu8-というprefix付きのクラスは、対応するu8c-付きクラスの単なるtypedefとして定義されるようになっています。加えたものが利用できました。2とでは戻り読みの挙動に違いがあります。Pythonなど多くのスクリプト言語が採用している固定幅限定の戻り読みではなく、制限のない可変幅の戻り読みを採用しました。一見すると後者は前者の上位互換のように思われますが、実のところこれらは次のような場合に異なる結果をもたらします。「$1によって最後にキャプチャされたもの」となる。"a"が「$1によって最後にキャプチャされたもの」となる。1が独自拡張として採用していたのは固定幅の戻り読みでした。2には、RegExpの機能拡張に追随して可変幅の戻り読みが実装されています。以下は外部のサイトです。