正規表現がよくわかりません。

mb_ereg_match( "[^a-zA-Z\!-\@\:\-\,\.\s]{2,}", $str )

文字列に英数字記号以外の文字が2回以上連続しているのが
含まれているかどうかを判定したいんですが、これじゃダメなようです。

どこが間違っているんでしょう?

内部エンコーディングはUTF-8、デフォルト言語はニュートラルです。