CASE WHEN (substring(modelo FROM '.$') <> '.') THEN length(replace(replace(replace(modelo,'X','[0-9]'),'Z','[1-9]'),'N','[2-9]'))
WHEN (substring(modelo FROM '.$') = '.') THEN length(replace(replace(replace(replace(modelo,'X','[0-9]'),'Z','[1-9]'),'N','[2-9]'),'.',REPEAT('[0-9]', 100))) END AS prioridade
FROM pbx_rotas_saida_ramais a
INNER JOIN pbx_rotas_saida_modelos b ON a.id_rota = b.id_rota
INNER JOIN pbx_rotas_saida c ON a.id_rota = c.id
WHERE ramal = '$ramal'
AND '$destino' ~ CASE WHEN (substring(modelo FROM '.$') <> '.') THEN replace('^'||replace(replace(modelo||'$','X','[0-9]'),'Z','[1-9]'),'N','[2-9]')
WHEN (substring(modelo FROM '.$') = '.') THEN replace('^'||replace(replace(modelo,'X','[0-9]'),'Z','[1-9]'),'N','[2-9]') END