Email and URL validation by regular expression is a well-known way to reject valid input. The correct pattern for an address is famously unreadable, and the shortened versions in circulation all refuse something legitimate.
filter_var($email, FILTER_VALIDATE_EMAIL);
filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED);
filter_var($n, FILTER_VALIDATE_INT, ['options' => ['min_range' => 1, 'max_range' => 99]]);
The important detail is that these return the filtered value or false, not true/false — so a validated integer 0 compares falsy and must be checked with === false. Validating an address still says nothing about whether it exists; only sending to it does that.