str_replace Problem

Moi!
Ich bin momentan BB-Codes am setzen. Das ganze kommt in eine Datei, doch da kommt das erste Problem:
Ich verwende wie hier solche BB Codes mit = Funktionen.
Bsp:
[ mail=email@email.com ] Email [ /mail ]
Nun soll man das ganze mir str_replace ersetzen, dass es einen HTML Code gibt.

Bisher hab ich’s so:
[php]
$text = nl2br($_POST[‚text‘]);
$text = str_replace(„[mail=“, „<a href="mailto:“, $text);
$text = str_replace(„[/mail]“, „">Hier soll der Text hin von [ mail ]“, $text);
[/php]
Nun:
Wie kann ich den Link übernehmen, also die Email, die vorher da war, oder wie kann man den Code schreiben, dass er nur [ mail= ] [ /mail] ändert, dass er den rest solässt?
Ich habe das auch bei [ url ], etc…

INFO: Habe bei diesen BB Codebeispielen Abstandäe reingemacht, dass HTML.de diese nicht umwandelt.

MfG, matibaski

schau auf php.net nach preg_replace damit gehts mfg