split.s: Regex: BBCode parsen

Beitrag lesen

Hab hier einen einfachen BBCode-Regex.

  
my @allowedTags = ('b', 'i');  
  
for (@allowedTags) {  
   $text =~ s{  
      \[$_\](.+?)\[$_\]  
   } {  
      replace($_,$1)  
   }egsx;  
}  

Meine Frage betrifft aber eher nur den Regex bzw. das Suchmuster:
[$_](.+?)[$_]

Wie ist es möglich, dass das Suchmuster sich nur angesprochen fühlt, wenn es NICHT innerhalb von [code] steht? Ich bräuchte also im prinzip sowas:

^[code].*[$_](.+?)[$_].*^[code]

Bin allerdings wie man sieht nicht so der regex-könner :D