Los caracteres barra vertical se usan para separar patrones
alternativos. Por ejemplo, el patrón
gilbert|sullivan
coincide con "gilbert" o con "sullivan". Pueden aparecer
cualquier número de alternativas, y se permite una alternativa vacía
(coincidiendo con el string vacío). El proceso de comparación prueba
cada alternativa sucesivamente, de izquierda a derecha, y la primera
que tenga éxito se usa. Si las alternativas están dentro de un
sub-patrón (definido más adelante), "tener éxito" significa coincidir con el
resto del patrón principal así como con la alternativa en el
sub-patrón.
Es posible registrar qué alternativa fue emparejada utilizando
(*MARK:NAME)
o (*:NAME)
.
Puede aparecer cualquier número de dichos verbos (*MARK)
y sus
nombres no tienen que ser únicos. Cuando un emparejamiento tiene éxito, el nombre del
último (*MARK:NAME)
encontrado se colocará entre
los emparejamientos como si fuera un grupo de captura llamado MARK
para que pueda
ser leído desde el matches
de
preg_match() y será pasado a la
retrollamada
de preg_replace_callback(), etc.