Beat: Regex Problem mit Oder Verknüpfung

Beitrag lesen

if (preg_match_all('#$var_[0-9]{1,3}#', $string, $contents)){
if (preg_match_all('#$var_[0-9]{1,3}_[0-9]{1}#', $string, $contents)){

Du willst $var_123 finden und $var_124_1
Also deinen ersten Ausdruck gefolgt von der ergänzung, aber optional: du suchst "?" sowie subpatterns

#(x(?:y)?)#
ist nicht zielführend in diesem Fall.
Allenfalls brauchst du negative lookaheadsm was das Ganze aber komplexer macht.
Dein Rezept trifft nur zu wenn dieser Fall zutrifft:
#(x(?:y)?)z#

Aber Umstellen ist einfacher
#(xy|x)#

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische