de echo, el . (punto) es un meta carácter.... y equivale a cualquier valor (no si se ereg función igual)
Referencia:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
para capturar el punto "literal" o sea... no todo, debes escapar el carácter....
^[a-z0-9@\._-]$