ひらがな、カタカナ、漢字以外を落とす正規表現

s/[^\p{Hiragana}\p{Katakana}\p{Han}]//sg;

これでうまくいくかと思いきやうまくいかず。

http://homepage1.nifty.com/ton_b/intro/regex03/
によると、

否定はpを大文字にして\P{Property}とするか、\p{^Property}と否定のメタ文字を入れます。

ということなので、

s/[\P{Hiragana}\P{Katakana}\P{Han}]//sg;

で解決、かと思いきや解決せず。

s/[\p{^Hiragana}\p{^Katakana}\p{^Han}]//sg;

でもダメ。

s/[^\x{3040}-\x{30FF}\x{4E00}-\x{A000}]//sg;

にしてみた。おそらく大丈夫。