A quanto pare ho risolto col preg_replace:
Codice PHP:
$substitution "[b]$0[/b]"



Rimane aperta la questione:
Ok, la regex sembra funzionare bene nella query sql (tranne se cerco lettere singole: in quel caso trova dei risultati senza che ci sia corrispondenza: che sarà mai?)