#1: I would say basically no, but see the "change log" section of www.php.net/preg_match for a few minor changes over time.

#3: Functionally, just checking for true/false should be fine, unless you want to capture "not found" (int 0) versus "error occurred" (Boolean false) and handle them separately.