5.4.2. Alternativen

Es kann eine Serie von Alternativen für ein Suchmuster angegeben werden, indem diese mit einem | getrennt werden. Auf diese Art findet das Suchmuster fee|fie|foe eines von fee, fie, oder foe im Zielstring - dies würde auch mit f(e|i|o)e ereicht.
Die erste Alternative beinhaltet alles vom letzten Muster-Limiter ((, [ oder natürlich der Anfang des Suchmusters) bis zum ersten |. Die letzte Alternative beinhaltet alles vom letzten | bis zum nächsten Muster-Limiter. Aus diesem Grunde ist es allgemein eine gute Gewohnheit, die Alternativen in Klammern anzugeben, um möglichen Missverständnissen darüber vorzubeugen, wo die Alternativen beginnen und enden.
Alternativen werden von links nach rechts gepürft, so dass der Treffer im Zielstring zusammengesetzt ist aus den jeweils zuerst passenden Alternativen. Das bedeutet, dass Alternativen nicht notwendigerweise "gierig" sind. Ein Beispiel: Wenn man mit (foo|foot) im Zielstring barefoot sucht, so passt bereits die erste Variante. Diese Tatsache mag nicht besonders wichtig erscheinen, aber es ist natürlich wichtig, wenn der gefundene Text weiterverwendet wird. Im Beispiel zuvor würde der Benutzer nicht foot erhalten, wie er eventuell beabsichtigt hatte, sondern nur foo.
Denken Sie bitte daran, dass das Zeichen | innerhalb von eckigen Klammern wie ein normales Zeichen behandelt wird, so dass [fee|fie|foe] dasselbe bedeutet wie [feio|].
Ausdruck
Beispiel
foo(bar|foo) findet die Strings 'foobar' oder 'foofoo'.