preg_replace a nahrazení řetězce HTML entitami u odkazu

Mám následující řetězec:

[a href="neco"]neco[/a]

který bych chtěl hromadně nahradit na
<a href="neco">neco<a>

Lze toto udělat pomocí funkce preg_replace? Popřípadě máte nějaké jednoduché inteligentní řešení, jak to udělat?

Zatím procházím znak po znaku a testuju výskyt znaku ']', který následuje po dvojici znaků [a, ale to mi připadá poněkud kostrbaté :).
Myslím si, že na
http://php.net/manual/en/function.preg-replace.php
je to vysvětlené dostatečně podrobně.

Osobně bych se však hranatým závorkám v datech vyhnul, je to zbytečná komplikace. Je lepší ukládat originální tagy.
Díky, už jsem to našel.

No já chci všechny tagy zakázat a převést špičaté závorky na jejich HTML entity. A povolit jen některé formou BB kódů.
No však. Nejlépe se to dělá přes XSLT. Povolíš jen ty tagy, které chceš. Ostatní převedeš na entity a zobrazíš. S hranatými závorkami si vůbec hrát nemusíš.