.net FrameWorkのRegex には ブラケット[:alpha:]は使えません。代わりに、名前付きブロック p{IsCombiningHalfMarks} などで代用します。
0x0000から0xFFFF までが名前でグループ化されています。
Regex.isMatch("p{isKatakana]") などでマッチする文字を表示するようにしてみました。
http://www.ognogn.com/Regex/Regex_char_NameBlock.aspx
isHiragana や isKatakana を表示すると(0x3040~) 想像できるキャラクタの前と後ろに"・"文字があったりします。
コード体系と実感覚の文字とは少しズレがあるようです。
表示文字で制限を加えるときは、p{isKatakana} でチェックするより[ァ-ヾ]のように明示的にチェックしたほうが良いようです。
(尚、このページは、サロゲート文字は省いてます。0xD800~0xDFFF)