regexp for email address validation

This appears to be the best email validator I have managed to find and alter slightly. with a amount at 350,00 email addresses it returns 2500 incorrect. haven’t managed to find any in that 2500 which are valid.

SELECT *
FROM `email_addresses`
WHERE `email_address`
NOT REGEXP '^[a-zA-Z0-9]?[a-zA-Z0-9#/\._\'\-]*[a-zA-Z0-9_\-]@[a-zA-Z0-9][a-zA-Z0-9._\-]*[a-zA-Z0-9]\.[a-zA-Z0-9]{2,4}$'
or CHAR_LENGTH(email_address) < 6
or CHAR_LENGTH(email_address) > 80

 

 

update email_addresses set invalid_email = 1 WHERE `email_address`
NOT REGEXP '^[a-zA-Z0-9]?[a-zA-Z0-9#/\._\'\-]*[a-zA-Z0-9_]@[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]\.[a-zA-Z0-9]{2,4}$'
or CHAR_LENGTH(email_address) < 6
or CHAR_LENGTH(email_address) > 80
AND date_created > DATE_SUB(CURDATE(), INTERVAL 1 DAY)