私は次のコードを書きました(はい、動作します)。phpマニュアルでは「特殊」文字と見なされるため、パターン内の「<」および「>」文字をエスケープする必要がないのはなぜか疑問に思いました。
http://www.php.net/manual/en/function.preg-quote.php
var_dump(preg_match('/<[A-Za-z][A-Za-z0-9]*>/', "<html>", $matches));
echo "<pre>";
var_dump(htmlentities($matches[0]));
echo "</pre>";
出力:
int(1)
string(12) "<html>"