s = 'aaa bbb ccc'
p s.scan(/\w+/)       -> ["aaa", "bbb", "ccc"]
p s.scan(/(\w+)/)     -> [["aaa"], ["bbb"], ["ccc"]]

と、括弧のあるなしで違いが出てしまう理由が、下の説明ではいまいち
わからないのですが。(まあなんとなくわかるんだけど...)

scan(re)
scan(re) {...}
   reで与えられる正規表現を文字列に対して繰り返しマッ チを行い,正規表現中の括
   弧で括られた部分にマッチした文字列を 配列として返します.正規表現が括弧を含
   まない場合はマッチした 部分文字列の配列を返します.ブロックを指定して呼び出
   された時に は,括弧で括られた部分にマッチする部分文字列(括弧を含まない 場合
   はマッチ全体)をブロックのパラメータとします.

-- 
人生を背負い投げ

菊谷 誠(Kikutani Makoto)  g / kondara.org or kikutani / galaxy.net