Whilst the conventional regular expression syntax is arguably overly compact, this is just too far in the opposite direction!
Something more PEG-like, or even Perl 6 regex-like, would make more more readable regular expressions whilst not completely throwing out everything we think things mean. Hell, even /x -- ignore whitespace and comments -- can make things much clearer:
/ ^
[0-9a-z._%+-]+ # The local part. Mailbox/user name. Can't contain ~, amongst other valid characters.
\@
[0-9a-z.-]+ \. [a-z]{2,} # The domain name. We've decided a TLD can never contain a digit, apparently.
$ /x
Tangentally, there's no point validating email addresses with anything more complicated than /@/. If people want to enter an email address that doesn't work, they can and will. If you want to be sure that the address is valid, send it an email!