pero que tiene de malo que lo hagas con str_replace
Código PHP:
<?php
$cadena = cat[13];
$nueva_cadena = str_replace("cat", "categoria", $cadena);
?>
se manejar el preg_match para verificar y validar porqeu lo ocupo mucho pero no he usado el preg_replace, dejame veo haber si te puedo ayudar si de plano lo quieres con preg_replace