hawkmaster: Regex Problem mit Oder Verknüpfung

Beitrag lesen

Hallo zusammen,
ich suche in einem String nach allen Vorkommen wie;

$var_1
$var_23
$var_456

Es gibt also immer die Zeichenfolge "$var_" gefolgt von 1-3 Zahlen
Soweit habe ich es hinbekommen.

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

Jetzt kommen aber noch ein paar wenige Variablen mit der Schreibweise:

$var_1_1
$var_456_6

also wie vorher nur mit zusätzlichen "_" (Unterstrich) gefolgt von einer Zahl
Auch das alleine würde ich hinbekommen:

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

Ich würde dies nun gerne in eine einzige Regex unterbringen mit einer ODER Verknüpfung. Hier komme ich jedoch nicht so recht weiter.
Ich habe es so versucht:

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

Die Ausgabe mit print_r($contents) bringt mir immer nur die Werte von der ersten Abfrage dafür aber doppelt.
Was mache ich falsch?

vielen Dank und viele Grüße
hawk