はじめまして、金子と申します。

複雑な正規表現はわりと好きです。

On Thu, 27 Oct 2005 14:36:50 +0900
中村 英夫 <cxn03651 / msj.biglobe.ne.jp> wrote:
>  全角スペースを区切り(ただし、括弧で囲まれたものは区切りと
> しない)として文字列の分解を行いたいのですが、次のように行う
> と"@"を含んだ文字列が切り出されてしまいます。
> VineLinux3.2にWinXP上のTeraTermProからログインして
> $ruby -v
> ruby 1.8.2 (2004-11-03) [i386-linux]
> $ruby -Ke -e "p 'あい(う え)お かき'.scan(/[^ (\(]*(?:[(\(][^)\)]*[)\)])*[^ (\(]*(?:[(\(][^)\)]*[)\)])*/)"
["あい(う え)お", "", ",・\255", ""]

Vine Linux 3.2 上で直接上記コマンドを叩いても、似たような結果になりますね。
化けかたが多少違いますが。

なぜ化けちゃうのかはさておき、文字列を区切るという原点に帰って、
split を使って

$ ruby -Ke -e 'p "あい(う え)お かき".split(/(?![\((][^)\)]*) +(?![^(\(]*[)\)])/)'
["あい(う え)お", "かき"]

でどうでしょうか。

# bashに解釈されないように double quotation と single quotation を
# 中村さんの例とは逆にしてます。

-- 
金子誠司 (KANEKO Seiji)
GnuPG Fingerprint = 0E77 26A2 BBEE 0D35 098D 2E0C 2FE2 A4DC D383 313C