Originariamente inviato da k.b
Il fatto e' che tu usi $occurrence[1] (nel while), quindi prendi il contenuto delle prime parentesi tonde, e cioe' solo [OBJECT....], invece se prendi il valore da $occurrence[0] hai il match completo (probabilmente devi rifare un po' il while, magari trasformandolo in un for).
credo di aver capito... adesso ci provo...

Originariamente inviato da k.b
Intanto non usare le parentesi tonde quando non servono; se vuoi trovare [OBJECT] ma anche [OBJECT_QUALUNQUECOSA] puoi usare questo pattern:

codice:
$string =  preg_replace("#\[/OBJECT(_[A-Z]+)?\]#", "", $string);
si ma lo avevo fatto e non funzionava e ora grazie a te mi sono accorto di aver messo il tutto in parentesi tonde invece di (_[A-Z]+) soltanto.....

ti farò sapere... ciauz...