- i (PCRE_CASELESS)
この修飾子が設定されている場合、パターンの中の文字は
大文字にも小文字にもマッチします。
- m (PCRE_MULTILINE)
デフォルトで、PCREは検索対象文字列を(実際には複数行からなる
場合でも)単一の行からなるとして処理します。
"行頭"メタ文字 (^) は文字列の最初にしかマッチしません。
一方、"行の終端"メタ文字 ($) は文字列の終わりまたは
(D 修飾子が設定されていない場合、)
終端を表す改行記号の前のみにしかマッチしません。
この動作は Perl と同じです。
この修飾子が設定された場合、"行頭"および"行末"は
subject文字列において、文字列の最初と最後と同じに、
各改行の直前と直後にそれぞれマッチします。
この動作は、Perl の /m 修飾子と同じです。
subject 文字列の中に "\n" 文字がない場合、
またはパターンに ^ または $ がない場合、
この修飾子を設定しても意味はありません。
- s (PCRE_DOTALL)
この修飾子が設定された場合、パターン中のドットメタ文字は
改行を含む全ての文字にマッチします。
これを指定しない場合、改行は除かれます。
この修飾子は、Perl の /s 修飾子と等価です。
[^a] のような否定クラスは、
この修飾子の設定によらず、常に改行文字にマッチします。
- x (PCRE_EXTENDED)
この修飾子が設定された場合、エスケープするか
文字クラスの内部にある場合を除き、
パターンの空白文字は完全に無視されます。
エスケープされていない文字クラスの外にある # と次の改行文字の間
の文字も無視されます。
この動作は、Perl の /x 修飾子と同じであり、複雑なパターンの内部に
コメントを含むことが可能となります。
しかし、この修飾子は、データ文字にのみ適用されることに注意
して下さい。空白文字をパターンの特殊文字の並びの中、
例えば条件付サブパターン(?) の内部に置くことはできません。
- e
この修飾子が設定されている場合、preg_replace()
は、置換文字列において後方参照に関する通常の置換を行った後、
PHP コードとして評価し、検索文字列を置換するためにその結果を
使用します。
この修飾子を使用するのは、preg_replace()のみです。
他の PCRE 関数では無視されます。
- A (PCRE_ANCHORED)
この修飾子が設定された場合、パターンは強制的に"anchored"となります。
この場合、検索される文字列("検索対象文字列")の先頭に
のみマッチするように制限されます。
パターン自体の中に適当な指定を行うことでも
同様の効果を得ることが可能で、Perlではこの方法しか使用
できません。
- D (PCRE_DOLLAR_ENDONLY)
この修飾子が設定されている場合、パターン内のメタ記号のドル
は、検索対象文字列の終わりにのみマッチします。
この修飾子を指定しない場合、ドル記号は改行文字の直前の
文字(ただし、改行文字以外)にもマッチします。
この修飾子は、m が設定されている場合に
無視されます。
Perlには、この修飾子に等価なものはありません。
- S
あるパターンを複数回使用する場合、マッチングにかかる時間を
高速化することを目的として、パターン解析により時間をかける
価値があります。
この修飾子を設定した場合、このようなより時間をかけた解析が
行われます。現在、パターン解析は、
最初の文字が単一の固定されていないアンカー付きでないパターンでのみ
有用です。
- U (PCRE_UNGREEDY)
この修飾子は、デフォルトで貪欲でないが、"?" が後に付くと貪欲
になる量子化器の動作を反転します。この修飾子はPerl互換では有
りません。この修飾子の指定は、(?U) 修飾子のようにパターン内
でも行うことができます。
- X (PCRE_EXTRA)
この修飾子は、Perl と互換性がない PCRE の付加的な機能をオンにします。
パターン内で後ろに文字が続くバックスラッシュで特別な意味がない
ものは、将来的な拡張の際の互換性の維持のため、エラーになります。
デフォルトでは、Perl のように文字が後ろに続くバックスラッシュ
で特に意味がないものは、リテラルとして処理されます。
この修飾子により制御される機能は、現在他にありません。
- u (PCRE_UTF8)
この修正子は、Perl非互換なPCREの機能を有効にします。パターン
文字列は、UTF-8エンコードされた文字列として処理されます。こ
の修正子は、PHP-4.1.0以降で使用可能です。