[Bug #1503] -Ku$B$r$D$1$?;~!"(B/[#{s}]/n $B$H(B Regexp.new("[#{s}]",nil,"n") $B$G<B9T7k2L$,0[$J

Bug #1503: -Kue$B$r$D$1$?;~!“e(B/[#{s}]/n e$B$He(B
Regexp.new(”[#{s}]",nil,“n”) e$B$G<B9T7k2L$,0[$J$ke(B
http://redmine.ruby-lang.org/issues/show/1503

e$B5/I<<Te(B: sinnichi eguchi
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal
ruby -v: ruby 1.9.2dev (2009-05-21 trunk 23511) [i686-linux]

/[#{s}]/n e$B$He(B Regexp.new(“[#{s}]”,nil,“n”)
e$B$G<B9T7k2L$,0[$J$j$^$9!#e(B

e$B2<5-$,%5%s%W%k%3!<%I$N<B9T7k2L$K$J$j$^$9!#e(B
e$B0lItJ8;z2=$1$bH/@8$7$F$$$^$9$N$G!"$=$NItJ,$K$D$$$F$O!V!|!W$GCV49$7$F$^$9!#e(B

$ ruby -v -Ku main.rb
ruby 1.9.2dev (2009-05-21 trunk 23511) [i686-linux]
main.rb:3: warning: ambiguous first argument; put parentheses or even
spaces
main.rb:10: warning: ambiguous first argument; put parentheses or even
spaces
/[\x00-\x1f\x7f-\xff]/
/[\x00-\x1F\x7F-e$B!|e(B]/
main.rb:10:in `': invalid multibyte character (ArgumentError)

e$B;29M$^$G$Ke(B-Kue$B$r$D$1$J$$>l9ge(B

$ ruby -v main.rb
ruby 1.9.2dev (2009-05-21 trunk 23511) [i686-linux]
main.rb:3: warning: ambiguous first argument; put parentheses or even
spaces
main.rb:10: warning: ambiguous first argument; put parentheses or even
spaces
/[\x00-\x1f\x7f-\xff]/
/[\x00-\x1F\x7F-e$B!|e(B]/
/[\x00-\x1F\x7F-e$B!|e(B]/

e$B$D$$$G$Ke(BNetBeanse$BAH$9~$$Ne(BJRubye$B$r;HMQ$7$?>l9g$N7k2L$K$D$$$F$b5-=R$7$F$*$-$^$9!#e(B
$ ~/netbeans-6.7beta/ruby2/jruby-1.2.0/bin/jruby -v -Ku main.rb
jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-04-24 rev 6586)
[i386-java]
main.rb:3 warning: Ambiguous first argument; make sure.
main.rb:10 warning: Ambiguous first argument; make sure.
/[\x00-\x1f\x7f-\xff]/n
/[\000-\037\177-\377]/n
/[\000-\037\177-\377]/n

e$B%A%1%C%He(B #1503 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

e$B%9%F!<%?%9e(B Opene$B$+$ie(BRejectede$B$KJQ99e(B

e$B$@$+$ie(Bmagic commente$B$r=q$1$H2?EY!J#r#ye(B

-Kue$B$NM-L5$Ge(Bmain.rbe$B$Ne(Bscript
encodinge$B$,JQ2=$9$k$N$,860x$G$9!#e(B

http://redmine.ruby-lang.org/issues/show/1503

e$B%A%1%C%He(B #1503 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

e$B$($'!";w$F$k$h$&$GF0$-$,0c$$$^$9!#e(B

Regexp.new(“[#{s}]”, nil, “n”)e$B$O!“e(B
Regexp.new(”[\x00-\x1f\x7f-\xff]", nil, “n”)e$B$HF1$8F0$-$r$7$^$9!#e(B

e$B0lJ}!"e(B/[#{s}]/ne$B$Oe(B
/--<\xFF>/ne$B$H%=!<%9%3!<%I$K$=$N$^$^%j%F%i%k$G=q$/$N$H!"e(B
e$B4pK\E*$K$OF1$8$J$N$G!"EvA3e(Binvalid multibyte
chare$B07$$$G%(%i!<$K$J$j$^$9!#e(B

e$B$3$A$i$OK\Ev$K%j%F%i%k$G=q$/$H@55,I=8=$N%Q!<%9$NA0$K%(%i!<$,=P$A$c$$$^$9$,e(B

http://redmine.ruby-lang.org/issues/show/1503

e$B$O$8$a$^$7$F!#9>8}$H?=$7$^$9!#e(B

e$BBP1~!"$"$j$,$H$&$4$6$$$^$9!#e(B
e$B$H$$$&;v$O;d$N4*0c$$$G!“e(B/[#{s}]/n e$B$Oe(B
Regexp.new(”[#{s}]",nil,“n”) e$B$Ne(B
syntax sugare$B$G$OL5$$$H$$$&;v$K$J$k$s$G$7$g$&$+e(B?
e$B$=$l$H$b!";d$N=q$-J}$,0-$/$F8m2r$5$;$F$7$^$C$F$$$^$9e(B?

e$B!Ve(B-Kue$B$r$D$1$?;~!W$H$$$&$N$O!"$"$/$^$GH/@8>r7o$Ge(B
e$B8=>]$O!Ve(B/[#{s}]/n e$B$He(B Regexp.new("[#{s}]",nil,“n”)
e$B$G<B9T7k2L$,0[$J$k!We(B
e$B$H$$$&ItJ,$K$J$j$^$9!#e(B

e$B$?$H$($P2<5-$N%3!<%I$r<B9T$9$k$He(Bp /[#{s}]/n e$B$Ge(B
ArgumentErrore$B$K$J$j$^$9!#e(B

-- coding: utf-8 --

s = %Q|\x00-\x1f\x7f-\xff|
p Regexp.new("[#{s}]",nil,“n”) # => /[\x00-\x1F\x7F-e$B!|e(B]/
p /[#{s}]/n # => ArgumentError

e$B$b$7NI$1$l$P$4;XE&$$$?$@$-$?$$$N$G!"59$7$/$*4j$$$7$^$9!#e(B

Yui NARUSE e$B$5$s$O=q$-$^$7$?e(B:

e$B%A%1%C%He(B #1503 e$B$,99?7$5$l$^$7$?!#e(B (by sinnichi eguchi)

e$B$J$k$[$I!#e(B
e$B$^$@2r$i$J$$ItJ,$,$“$j$^$9$,!”$b$&$7$P$i$/D4$Y$F$_$Fe(B
e$B$I$&$7$F$b2r$i$J$1$l$Pe(Bruby-liste$B$NJ}$G<ALd$5$;$F$$$?$@$-$^$9!#e(B
e$B$"$j$,$H$&$4$6$$$^$7$?!#e(B


http://redmine.ruby-lang.org/issues/show/1503

e$B%A%1%C%He(B #1503 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

/…/ne$B$O!"FbB&$NJ8;zNs$re(BASCII-8BITe$B$H$7$F$_$J$7$F@55,I=8=$K$9$k%j%F%i%k$G$O$J$/!"e(B
ASCII-8BITe$B$J@55,I=8=$r:n$k$?$a$N%j%F%i%k$J$N$,:,K\E*$JM}M3$G$9!#e(B

e$B$h$C$F!"$=$b$=$b$NF05!$H$7$F!“e(B/e$B$“e(B/ne$B$H$$$C$?=q$-J}$O$d$a$5$;$?$$$H;W$C$F$$$^$9!#e(B
e$BM}M3$O!”$=$N@55,I=8=$,=q$+$l$?%=!<%9%3!<%I$Ne(Bencodinge$B$,JQ49$5$l$?>l9g$K!“e(B
e$B@8@.$5$l$k@55,I=8=$,0U?^$;$:$7$FJQ$o$k2DG=@-$,$”$k$+$i$G$9!#e(B
e$B$^$?!”@h=R$Ne(BASCII-8BITe$B$J@55,I=8=%j%F%i%k$H$$$&<q;]$K$?$$$7$F!"e(B
e$BAG$NJ8;z$r=q$+$l$k$N$O$3$l$KH?$7$^$9!#e(B

e$B<!$Ke(B/#{“foo”}/e$B$N$h$&$KKd$a9~$`$b$N$,%j%F%i%k$N>l9g!"e(B
e$B$3$N%3!<%I$O%Q!<%5%l%Y%k$Ge(B/foo/e$B$N$h$&$K!“e(B1e$B$D$N%j%F%i%k$KCV$-49$($i$l$F$$$^$9!#e(B
e$B$D$^$j!”<B9T;~$K$3$Ne(B2e$B$D$O6hJL$9$k$3$H$,$G$-$J$$$N$G!“0z$-$:$i$l$F%(%i!<$,=P$^$9!#e(B
e$B$b$C$H$b!”$?$H$(6hJL$G$-$?$H$7$F$b$3$N$h$&$JJ}K!$G2sHr$G$-$k$h$&$J!"e(B
e$B$$$+$K$b%P%C%I%N%&%O%&E*$J5sF0$O5v$5$J$$$G$7$g$&!#e(B

e$B$5$F!“$d$C$HK\Bj$G$9!#e(B
/#{s}/ne$B$He(B2e$BHVL$N0c$$$OKd$a9~$`$b$N$,%j%F%i%k$+JQ?t$+$N0c$$$G$9!#e(B
e$B$3$N0c$$$,1F6A$9$k$3$H$b!“7k6I$OKd$a9~$_<0$G$”$C$F$b%j%F%i%k$N@8@.$J$N$GK\0U$G$O$”$j$^$;$s!#e(B
e$B$?$@!“%(%i!<%a%C%;!<%8$OHyL/$K@h$N>l9g$H$OJQ$($F$”$j$^$9!#e(B
e$B$“$o$;$F!”!Ve(Binvalid multibyte character
(ArgumentError)e$B!W$H$$$&%a%C%;!<%8$b!"e(B
RegexpError: /…/n has a non escaped non ASCII character in non
ASCII-8BIT script
e$B$KJQ$($F$$$^$9!#e(B

http://redmine.ruby-lang.org/issues/show/1503

e$B%A%1%C%He(B #1503 e$B$,99?7$5$l$^$7$?!#e(B (by Takashi T.)

e$B$3$s$K$A$O!"e(Bsheepman e$B$G$9!#e(B

e$B$=$b$=$b$NF05!$H$7$F!“e(B/e$B$“e(B/ne$B$H$$$C$?=q$-J}$O$d$a$5$;$?$$$H;W$C$F$$$^$9!#e(B
e$BM}M3$O!”$=$N@55,I=8=$,=q$+$l$?%=!<%9%3!<%I$Ne(Bencodinge$B$,JQ49$5$l$?>l9g$K!“e(B
e$B@8@.$5$l$k@55,I=8=$,0U?^$;$:$7$FJQ$o$k2DG=@-$,$”$k$+$i$G$9!#e(B
e$B$^$?!”@h=R$Ne(BASCII-8BITe$B$J@55,I=8=%j%F%i%k$H$$$&<q;]$K$?$$$7$F!"e(B
e$BAG$NJ8;z$r=q$+$l$k$N$O$3$l$KH?$7$^$9!#e(B

e$B$J$k$[$IG<F@$7$^$7$?!#$=$N$h$&$J;vBV$O9M$($F$$$^$;$s$G$7$?!#e(B
e$B@bL@$"$j$,$H$&$4$6$$$^$9!#e(B

http://redmine.ruby-lang.org/issues/show/1503

e$B%A%1%C%He(B #1503 e$B$,99?7$5$l$^$7$?!#e(B (by Takashi T.)

e$B$3$s$K$A$O!"e(Bsheepman e$B$G$9!#e(B

e$B0lJ}!"e(B/[#{s}]/ne$B$Oe(B
/--<\xFF>/ne$B$H%=!<%9%3!<%I$K$=$N$^$^%j%F%i%k$G=q$/$N$H!"e(B
e$B4pK\E*$K$OF1$8$J$N$G!"EvA3e(Binvalid multibyte chare$B07$$$G%(%i!<$K$J$j$^$9!#e(B

e$B%(%s%3!<%G%#%s%0$,E,@Z$K@Dj$5$l$F$$$l$P!"$?$H$(%9%/%j%W%H%(%s%3!<%G%#%s%0$He(B
e$B0[$J$C$F$$$F$bLdBj$J$$$
$?$$$G$9!#$3$NNc$N>l9g!"e(Bs
e$B$N%(%s%3!<%G%#%s%0$,e(B
ASCII-8BIT e$B$J$ie(B ok e$B$N$h$&$G$9!#e(B

$ cat e02.rb

coding: euc-jp

s = “\x00-\x1f\x7f-\xff”.force_encoding(“ASCII-8BIT”)
p /[#{s}]/.encoding
p /[#{s}]/n.encoding

$ ruby-1.9 -v
ruby 1.9.2dev (2009-08-01 trunk 24343) [i686-linux]

$ ruby-1.9 e02.rb
#Encoding:ASCII-8BIT
#Encoding:ASCII-8BIT

e$B$3$3$+$i$,<ALd$G$9!#e(B

/#{s}/n e$B$Oe(B /#{s.dup.force_encoding(“ASCII-8BIT”)}/
e$B$HF1$8F0:n$r$9$k$h$&$Ke(B
e$B$7$F$bNI$$$h$&$K;W$($k$N$G$9$,!"$=$&$7$J$$M}M3$O$J$s$G$7$g$&$+e(B?
e$B$D$^$j!Ve(BRegexp.new(s, nil, “n”) e$B$Oe(B
Regexp.new(s.dup.force_encoding(“ASCII-8BIT”))e$B$HF1$8$@$1$I!"e(B
/#{s}/n e$B$Oe(B /#{s.dup.force_encoding(“ASCII-8BIT”)}/
e$B$HF1$8$G$O$J$$!WM}M3$,CN$j$?$$$G$9!#e(B


http://redmine.ruby-lang.org/issues/show/1503