Rato Micefarmer: Regex matcht nicht alles, was gematcht werden soll

Hallo!

ich habe folgenden Regex:

/(\\*)({?)$(([a-zA-Z_\x7f-\xff][\w\x7f-\xff]*)(->[a-zA-Z_\x7f-\xff][\w\x7f-\xff]*)?([[\w\x7f-\xff]+])*)(}?)/

Dieser soll auf Ausdrücke, die normallerweise eine Variable darstellen matchen, also auf sowas z.B.:

$varablen_name
{$BLABLA23}
\$foo[BAR]}
$Cart->items
$Cart->items[33]

Doch das funktioniert nicht komplett. Nehmen wir folgenden Beispielstring:

\$janoch}mals
$Cart->items}{$Cart->items[nr.33]}

Der obige Regex matcht hierbei auf '\$janoch}' und auf '$Cart->items}', jedoch nicht auf '{$Cart->items[nr.33]}'. Bei letzterem liefert er mir nur '{$Cart->items'. Das in den eckigen KLammern und die schliessende geschwungene Klammer wird ignoriert, was jedoch nicht so sein soll.
Kann mir hier jemand einen Tipp geben, was an meinem Regex falsch ist?

mfg
Rato

--
§§§
Meine Postings basieren lediglich auf mein Wissen und können völliger Blödsinn sein.
§§§
  1. Hi!

    /
    (\\*)
    ({?)
    $
    (
     ([a-zA-Z_\x7f-\xff][\w\x7f-\xff]*)
     (->[a-zA-Z_\x7f-\xff][\w\x7f-\xff]*)?
     (
      [
       [\w\x7f-\xff]+
      ]
     )*
    )
    (
     }?
    )
    /

    Muss die schließende ] eventuell escaped werden?

    mfG

    --
    Selfcode: ie:} fl:{ br:> va:) ls:< fo:( rl:? n4:# ss:| de:] js:| ch:? sh:( mo:? zu:)
    "And all those exclamation marks, you notice? Five? A sure sign of someone who wears his underpants on his head."
    (Terry Pratchett)
    1. Muss die schließende ] eventuell escaped werden?

      Das glaub ich eher weniger. Wie du siehst, wird das schließende '}' auch nicht escaped und das funktioniert ohne Probleme. Wenn ich etwas in der Art '$var_1[foobar]' habe, so wird ja richtig gematcht. Fehlermeldung bekomme ich auch keine.

      mfg
      Rato

      --
      §§§
      Meine Postings basieren lediglich auf mein Wissen und können völliger Blödsinn sein.
      §§§