>>215
たとえば、シンプルでいいなら下記のようなことはできる(splitじゃないけど)

"abc123+456def".scan(/[a-zA-Z]+|\d+|\W+/) #=> ["abc", "123", "+", "456", "def"]

んだから、>>216の言うとおり「文字種」を定義すれば可能。
で、それを定義してるUnicodeブロックなるものもあるらしい
ttp://module.jp/blog/regex_unicode_prop.html

Rubyでは鬼車採用の1.9以降、になるのかな?
詳しくないけど、参考になれば