Regexp probléma

Sziasztok!

Egy BBcode szerű dolgot kellene leprogramozzak PHP-ban és van egy regexp, amit képtelen vagyok megírni. :o(
Van ez a "formázott" szöveg:


[bold][italic]aaa[/italic][/bold]
[italic]bbb[/italic]
[bold]ccc[/bold]

A bold-ra írt regexp-em:

/\[(bold)\]([^\[]*(?!\/\$1\]))\[\/bold\]/s

Ez majdnem jó, csak az 'aaa' sort nem vastagítja ki, mert egymásba vannak ágyazva a kódok, de ha ezt használom:

/\[(bold)\](.*(?!\/\$1\]))\[\/bold\]/s

Akkor az 'aaa' sor nyitó tag-jához a 'ccc' sor záró-tagját veszi figyelembe.
Segítetek légyszi, mert agyvérzést kapok!:o)

Köszi előre is!

Hozzászólások

> az 'aaa' sor nyitó tag-jához a 'ccc' sor záró-tagját veszi figyelembe.

/.*?/ , különben a leghosszabb illeszkedést keresi.