Praktycznie każdy preg_match będzie traktował string typu NULL jako FALSE jeśli jakikolwiek znak będzie w wyrażeniu. Jedynie w przypadku gdy nie ma wyrażenia to zwraca TRUE w porównaniu do stringa z NULL-em, no ale nie ma sensu tworzyć preg_match bez wyrażenia.
$string = null;
(bool)$string: bool(false)