1. Introduction (はじめに)
1. Introduction (はじめに)
この仕様は, 相互運用可能な正規表現 (Regular Expression, 略称 "regexp") フレーバーである I-Regexp を記述します。
I-Regexp は, キャプチャグループ (Capture Groups), 先読み (Lookahead), 後方参照 (Backreferences) などの高度な正規表現機能を提供しません。ブール一致 (Boolean Matching) 機能のみをサポートします。つまり, 与えられた正規表現が与えられたテキスト片と一致するかどうかをテストします。
I-Regexp は, Unicode 文字 (Unicode Scalar Values) の完全なレパートリーをサポートします。I-Regexp 文字列自体と, それらが照合される文字列の両方は, Unicode スカラー値のシーケンスです (交換のために UTF-8 エンコーディング形式 [STD63] で表現されることがよくあります)。
I-Regexp は, XML Schema Definition (XSD) 正規表現 [XSD-2] のサブセットです。
このドキュメントには, いくつかのよく知られた正規表現イディオムで使用するために I-Regexp を変換するためのガイダンスが含まれています。
I-Regexp の開発は, JSONPath ワーキンググループ (Working Group, WG) の作業によって動機付けられました。WG は, その仕様 [JSONPATH-BASE] で JSONPath フィルターでの正規表現の使用のサポートを含めたいと考えましたが, 一般的なライブラリ間で相互運用可能な正規表現の有用な仕様を見つけることができませんでした。
1.1 Terminology (用語)
このドキュメントでは, プログラミングで通常 "正規表現" (Regular Expression) と呼ばれるものに対して略語 "regexp" を使用します。用語 "I-Regexp" は, この仕様の要件に準拠する文字列 (Unicode スカラー値のシーケンス) を意味する名詞として使用されます。複数形は "I-Regexps" です。
この仕様では Unicode 用語を使用します。[UNICODE-GLOSSARY] が優れたエントリーポイントを提供します。
このドキュメントのキーワード "MUST" (しなければならない), "MUST NOT" (してはならない), "REQUIRED" (必須), "SHALL" (すべき), "SHALL NOT" (すべきでない), "SHOULD" (すべきである), "SHOULD NOT" (すべきでない), "RECOMMENDED" (推奨), "NOT RECOMMENDED" (非推奨), "MAY" (してもよい), "OPTIONAL" (任意) は, BCP 14 [RFC2119] [RFC8174] に記載されているとおりに解釈されるものとします。ここに示すように, すべて大文字で表示される場合に限ります。
このドキュメントの文法規則は, [RFC5234] および [RFC7405] に記載されているように ABNF (拡張バッカス・ナウア記法) として解釈されるものとします。ここで, [RFC5234] のセクション 2.3 の "文字" (Characters) は Unicode スカラー値です。