split.s: regex und "&"

Ich habe ein problem mit dem &-Zeichen bei einem Regex:

$text =~ s{[($_)=([a-zA-Z_0-9/:.-#=?&]+)](.+?)[/$_] } { ... }

Das ganze soll mal ein BBCode-Parser werden.

Nun ist folgendes: Der regex ergibt FALSE, wenn innerhalb der ersten [] ein & vorkommt:

Beispiel:

[url=htp://www.test.de/?id=2&sub=3]blabla[/url]

Wo ist mein Denkfehler?

Ansonsten funktionierts! (!)

  1. Sieht für mir okay aus, und mein Texteditor findet damit auch Texte mit "&". Liegt der Fehler vielleicht woanders? Z.B. ist am Ende ein Slash ohne Backslash davor...

    Thomas

    http://file-sync.org