## 選択肢

縦線は、パターンに選択肢 (alternative) を列挙するために使われます。 例えば、パターン `gilbert|sullivan` は、"gilbert" または "sullivan" にマッチします。 選択肢の数に制限はありません。また、空の選択肢も可能です (空の文字列にマッチします)。マッチの手順としては、 各選択肢が左から右に順にマッチするかどうか試行され、 最初にマッチに成功した選択肢が使われます。選択肢を（後述する） サブパターン内に記述した場合、マッチの「成功」とは、 サブパターン内の選択肢も、メインのパターンの他の部分もマッチした ということを意味します。

どの選択肢がマッチしたかを、 `(*MARK:NAME)` や `(*:NAME)` の形式で記録することができます。 `(*MARK)` のような動詞の形式は、 いくつでも記述でき、名前はユニークである必要がありません。 マッチが成功すると、最後に現れた `(*MARK:NAME)` の名前が あたかも `MARK` と呼ばれるキャプチャグループが存在するかのように、 マッチした情報の一部として置かれます。 よって、この情報は preg_match() の `matches` から読み取ることができ、 preg_replace_callback() の `callback` に渡すことなどができます。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open