[3] UTS #18 は Unicode の正規表現の仕様書です。
[4] 正規表現には各言語等でいろいろな方言が (Unicode 以前から) あります。 Unicode正規表現は、それらについて Unicode 対応のための標準仕様を定めています。 しかし既存の方言の統一を企図したものではなく Unicode 対応部分だけを規定としています。
[16] 正規表現エンジンは、 正規表現の単独で一様な解釈のために、 入力テキストに常に NFC を適用しても構わない >>15 とされています。
[17] しかしながら、 NFC は破壊的な操作で、
入力テキストを非可逆に変化させてしまいます。
[8] 実装は、 Unicodeの版、 UTS #18 の版、 水準の組に対して適合性を主張できます。 >>7 C0
[10] 現行 UTS #18 には水準1 >>7 C1 と水準2 >>7 C1, C2 があります。 過去の UTS #18 には水準3 >>7 C3 がありましたが、現在は廃止されています。
[11] 部分実装も許されていますが、どの水準、どの機能に対応しているのか明確に記述することが求められています。 >>7 C4
[12] 一体となるシステムの他の構成部品と組み合わせて機能を実現すること (例えば他の機構によりUnicode正規化された結果を入力として要求すること、 追加モジュールの利用を要求することなど) も認められますが、その旨を明確に記述することが求められています。 >>7
[13] 後方互換性のために既定の状態では機能を有効にせず、何らかの設定によって有効にするような形態の実装も認められています。 >>7
[14] ただ正規表現を書いただけではバイト列モードで動作し、 特定のオプションを与えるとUnicode文字列モードに切り替わるような実装もあり得ます。
[5] 現在広く使われている多くのプログラミング言語等が標準で Unicode正規表現に対応しています。 具体的にどの機能をどの程度実装しているかには違いがあります。 また、 Unicode正規表現にない独自の機能なども多々あります。 詳しくはそれぞれの項を参照。