Parece que você está usando um regex no estilo Perl, mas o MySQL não os entende. Você pode substituir, por exemplo, \d
por [:digit:]
. Confira o §11.4.2 do Manual de Referência do MySQL 5.1 .
Eu não tenho 100% de certeza, mas acho que o seu regex seria:
.*\.[[:alnum:][:digit:]_-]{2,3}
para ser honesto, acho que há alguma sobreposição entre as várias classes. Talvez pudesse ser representado de forma mais simples:
.*\.[[:alnum:]_-]{2,3}
Devo salientar também que o sublinhado _
não é válido em nenhuma parte de um nome de domínio.