preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match. preg_match_all() on the contrary will continue until it reaches the end of subject . preg_match() returns FALSE if an error occurred.
I’d be a little bit more specific and explicitly check for no match, rather than no match or error.
<?php
if(1 !== preg_match($pattern, $subject)){
#no match
}
?>