Beschäftige Dich einfach mal mit der grundlegenden Funktionsweise eines Scanners und eines Parsers. Dann klappt der Rest von Alleine.
Ein Scanner zerlegt einen Inputstring in seine Sprachbestandteile ('Wörter'). Bei
BBCode (Kenn nich nicht, aber egal) wären das z.B. 'BeginTag', 'EndTag' und 'String'.
Der Parser nimmt nun diese Wort-Sequenz und erstellt einen sog. Syntaxbaum. Immer wenn eine logischer Block abgearbeitet wird, kann dieser Baum dann von einem 'Compiler' in die Zielsprache (z.B. RTF) übersetzt werden.
Wenn man die Theore richtig umsetzt, kann gar nichts schiefgehen.
[Edit] Der_Unwissende ist auch Der_Schnellere[/edit]