PHP no reemplazará los marcadores de posición dentro de las cadenas, es decir, entre comillas. Como en:
$criteria->addCondition('col = :app'); // param can be replaced
$criteria->addCondition('col = ":app"'); // param can't be replaced
Por lo tanto, necesitamos usar mysql CONCAT() función para generar realmente la cadena para expresiones regulares, en lugar de proporcionar la cadena nosotros mismos, así:
$criteria->addCondition('col regexp CONCAT("[[:<:]]", :app, "[[:>:]]")');
O, vincule toda la expresión regular en sí misma:
$criteria->addCondition('col regexp :regexp');
$criteria->params = array(':regexp'=>'[[:<:]]'.$app.'[[:>:]]');