Has probado con la funcion
escape de Smarty quizá te sirva de ayuda. Por cierto la función regex_replace utiliza la misma sintaxis que
preg_replace() del manual de php.
no se si esto funcionará puedes probar:
Código:
{$var|regex_replace:'/([ ])/':'-' |escape:"htmlall"}
La verdad es que es bastante sucio pero en fin...