At Thu, 21 Mar 2002 21:00:24 +0900,
Takaishi Hayato wrote:
> ごく単純に、
> 
> "abc".gsub(/^|(.)/,"(\\1)")
> 
> => "()a(b)(c)"
> 
> となりました。(ruby 1.6.6)
> 行頭(^)にマッチした後、"abc" が残らずに "bc" だけになってい
> るようですね。

 これは確か、同じ場所で二度マッチしないようになっているため
だったと思います。前にも話題になったような。空にマッチする
パターンはややこしい、と。

 今の Ruby や鬼車ではマッチしませんね。Perl では二度マッチ
するので実装上は可能だと思いますが。

	$ ruby -e 'puts "abc".gsub(/(^|.)/,"(\\1)")'
	()a(b)(c)
	$ oniguruby -e 'puts "abc".gsub(/(^|.)/,"(\\1)")'
	()a(b)(c)
	$ perl -le '$_="abc";s/(^|.)/($1)/g;print'
	()(a)(b)(c)

-- 
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"Somewhere out of a memory.. of lighted streets on quiet nights.."