If a letter is found, the subject is matched against the first alternative; otherwise it isIf a letter is found, the subject is matched against the first alternative; otherwise it is matched against the second.
文字クラスの外側の場合、デフォルトのマッチモードでは、ハット記号は 現在マッチングを行っている位置が対象文字列の始端である場合にのみ TRUE となる言明です。 文字クラスの内部では、ハット記号は全く別の意味となります。 (以下を参照) 複数の選択肢がある場合、 ハット記号はパターンの最初の文字である必要はありません。 しかし、パターンがその枝にマッチしない場合、 各選択肢の先頭に置く必要があります。 全ての選択肢がハット記号で始まる場合、パターンは対象の最初にのみ マッチするように拘束されてㄣ?場合であり、"アンカー付き" パターンと 呼ばれます。 (他の文字もパターンをアンカー付きにすることが可能です) ドル記号は、(デフォルトでは)現在のマッチング点が対象文字列の 終端にあるか、文字列の最後の文字が改行文字である場合に その直前にある場合のみ TRUE となる言明です。 ドル記号は、複数の選択肢がある場合、パターンの最後の文字であ る必要はありませんが、使用さ??枝の最後のアイテムである必要 があります。ドル記号は、文字クラスの中では特別な意味を有しま せん。 ドル記号の意味は、コンパイル時またはマッチング時の PCRE_DOLLAR_ENDONLY オプションの設定により文字列の終端にのみマッチするように変更する ことが可能です。この設定は、\Z 言明には影響を与えません。 ハット記号とドル記号の意味は、 PCRE_MULTILINE オプション を設定した場合に変化します。これを設定した場合、対象文字列の始端 及び終端にマッチするのに加えて、文字列内部の "\n" 文字の直前 及び直後にそれぞれマッチします。例えば、パターン /^abc$/ は 複数行モードでは対象文字列 "def\nabc" にマッチしますが、 そうでない場合はマッチしません。結果として、 全ての枝が "^" で始まるため、単一行モードでアンカー付きのパタ ーンは、複数行モードではアンカー無しとなります。 PCRE_DOLLAR_ENDONLY オプションは、 PCRE_MULTILINE が設定され ている場合は無視されます。 両方のモードで対象の始端および終端にマッチさせるために シーケンス \A, \Z, \z を使用出来ることに注意してください。 パターンの枝が \A を付けて始まる場合、 PCRE_MULTILINE の設 定によらず、常にアンカー付きとなります。