Está rodando local ou online? Não manjo muito disso, mas de repente é alguma configuração do próprio servidor. Manda um SHOW VARIABLES e dá uma olhada nas variáveis character_set_*. Vê se aparece alguém diferente de latin1 ou uft8. Na pior das situações, você pode listar os caracteres manualmente.
SELECT 'á' REGEXP '[0-9aáãà]'
Todas as character_set_* estão como latin1
somente a *_filesystem está como Binary e a *_system está como UTF8.
Usando o REGEXP manualmente, deu certo. Sendo assim, por hora, PROBLEMA RESOLVIDO.
Valew!
Descobri uma coisa interessante.
A função funciona quando crio diretamente na tela da console. O Mysql reconhece perfeitamente os acentuados.
Antes eu estava criando a função em arquivo .sql e depois chamando o arquivo com "SOURCE C:/DATA/ARQUIVO.SQL".
Testei criar o arquivo .sql em 3 editores diferentes (sendo um deles o NOTEPAD), mas sempre da pau com os acentos (não no editor, mas no banco).
O que diabos pode estar ocorrendo?
*Obs.: Não estou parado por causa disto, só estou 'encucado' com esta questão.