prova a vedere il codice generato dal forum quando inserisci un link, l'href è un attributo del tag ]url[, il testo invece è tra i 2 tag.

Credo che per questa cosa l'unica via sia usare preg_replace con un'espressione regolare.

Prova a vedere su regexlib.com, forse c'è già in archivio una regex per assolvere a questo compito.

ciao