I've tried this pattern with regex101.com and it seems to be working as described:
example@___.com - no match
[email protected] - no match
[email protected] - match
[email protected] - match
So the regex itself seems to be "correct" - could it be that the issue is somewhere else in the code?
As a side note - it also matches lines like:
example@./com
example@x com
Dot . outside of character class construct [] means "any character". If you want it to match exactly dot character and nothing else, escape it with slash: \.