Ich schreibs Sicherheitshalber mal

Du hast ja oben zwei Funktionen definiert, bbcode_replace und bbcode_callback.
Unten gibst du aber nur:
PHP-Code:
echo'[b]Halle[/b] Welt!';
aus. Daher gibt er natürlich auch genau diesen String wieder aus, und wandelnt ihn nicht um. Du musst das echo schon in Verbindung mit der replace Funktion verwenden:
PHP-Code:
echo bbcode_replace( '[b]Halle[/b] Welt!' );