>>90
>縦棒って最初にマッチした奴にマッチして終わり
そうだよ。
うえのやつは全角相当のパターンが違うんでないの。
見やすくするためスペース入れると、

×( [\x81-\x9F][\x40-\x7E] | [\xE0-\xEF][\x80-\xFC] | [\xA1-\xDF] | . )
○( [\x81-\x9F\xE0-\xEF][\x40-\x7E\x80-\xFC] | [\xA1-\xDF] | . )

だと思う。少なくとも$badはこれでいけた。