grazie mille, per come avevo chiesto era corretta. poi però l'ho dovuta modificare perchè mi serviva un'altra piccola sfaccettatura. In pratica devo matchare tutte le stringhe di quel tipo, ma che non contengano il numero 162, numero per intero e non le singole cifre. ho fatto così

$strr = preg_replace('@[img]([^[/img]@is', '[img]$1[/img]', $strr);

però in pratica vengono matchate tutte le stringe che non contengono 1 e non 162. Esiste qualcosa di rapido che posso usare per correggere?