$muster = '/[([a-zA-Z0-9-]+)'];
(Hmm, Tippfehler?)
Das Muster wird mit / eingeleitet, muss quasi auch mit / (+ evt. Modifier) enden.
Des weiteren Endet der String nicht.
Mal davon ausgehend, dass dir beim tippen/C&P ein Fehler unterlaufen ist,
[a-zA-Z0-9-]+
Das wäre Laut deiner Beschreibung falsch, da du ja _alles_ haben willst.
$muster = "/\[([^\\]]+)\]/";
Wahrscheinlich musst du noch auf nicht-gierig setzen. (ungetestet)
MfG
bubble