Я хотел бы разрешить несколько повторений для одного определенного класса символов:).
$data = 'abc@abc-abc.abc';
echo preg_match('/^[a-z]+[a-z0-9._-]+[a-z]+@+[a-z0-9]+[._-]?+[a-z0-9]+\.?+([a-z0-9]{2,})$/', strtolower($data)); // works (echo 1)
$data = 'abc@abc-abc.abc.abc';
echo preg_match('/^[a-z]+[a-z0-9._-]+[a-z]+@+[a-z0-9]+[._-]?+[a-z0-9]+\.?+([a-z0-9]{2,})$/', strtolower($data)); // doesn't work (echo 0, but should return 1)