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.