I have the following regular expression:

$emailPattern = '/^[a-zA-Z0-9_.-\@]{8,50}$/';

Basically I want to allow all alphabetical and numerical characters, as well as underscores, dashes and dots, but I want to REQUIRE the @ symbol, as it's obviously necessary for a valid email.

My question is, I've done it, but I don't understand how I achieved it.

If using the pattern above I type in "@gtdhdxt" it works, but if I remove the @ it doesn't, which is fine.

What I'm curious about is what makes the @ symbol required?
There is no dash, underscore or even a dot (Which I'd like to make required), and it still validates.

I'm not sure if I've explained myself correctly, but if anyone can offer me some advice I'd appreciate it.