>>422
そっか。じゃあこんなんでどうだろ?

$sjis = '(?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]|[\xA1-\xDF])';
if (preg_match("/^${sjis}*[[:punct:]]/", $str)) { ... }