マッチしたら 1
しなかったら 0
エラーの場合 false

エラーかどうかを判定するために
if (!preg_match(...))
なんてことをするとエラーじゃないがマッチしない場合も正として評価されると言うことかと

nullの話は本が間違ってるか、または第三引数に入ってくる値のことかも