Bonjour à tous

Voilà mon problème. Je teste les adresse mail depuis une table et je veux tester les caractère speciaux mais je n'arrive qu'a identifié lorsque le caractère est dans le nom de domaine et pas dans la partie local.

si je fais cette expression
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select REGEXP_INSTR('te#st@test.com', '[a-zA-Z0-9._%-^]*@[a-zA-Z0-9._%-^]*\.[a-zA-Z]{0,4}') from dual;
elle me retourne 4

et si je fais celle ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select REGEXP_INSTR('test@te#st.com', '[a-zA-Z0-9._%-^]*@[a-zA-Z0-9._%-^]*\.[a-zA-Z]{0,4}') from dual;
elle me retourne 0

et donc je voudrais que lors de la première requête elle me retourne 0 aussi.

Merci pour les solutions proposé