/(?<break>a)/ =~ "a" $BEy$K$h$k%m!<%+%kJQ?t(B

e$B;38}$H?=$7$^$9!#e(B

e$B:rF|$NBhe(B19e$B2s%!<%W%s%=!<%9%5%m%s$G@55,I=8=$Ne(B named capture
e$B$N7k2L$,%m!<%+%kJQ?t$KBeF~$5$l$k$H$
$&$+$,$$$7$^$7$?$N$G?’!9;n$7$F$$$?$N$G$9$,!"8=>u$G$OM=Ls8l$N%A%’%C%/$r$7$F$$$J$$$N$GM=Ls8l$NL>A0$r;}$D%m!<%+%kJQ?t$r:n$k$3$H$,=PMh$^$9!#$=$&$7$?%m!<%+%kJQ?t$,B8:_$7$?$H$7$F$b4pK\E*$KL532$@$m$&$H$O;W$$$^$9$,!"0l1~$4Js9p$5$;$FD:$-$^$9!#e(B

/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”
/(?a)/ =~ “a”

p local_variables
#=> [“nil”, “and”, “begin”, “break”, “case”, “if”, “self”, “true”,
“false”, “alias”, “def”, “super”]

Index: parse.y

— parse.y (e$B%j%S%8%g%se(B 14430)
+++ parse.y (e$B:n6H%3%T!<e(B)
@@ -8513,7 +8513,8 @@
arg->fail_block = NEW_BEGIN(0);
}

  • if (!(len && rb_enc_islower(*name, enc) && rb_enc_symname2_p(s,
    len, enc))) {
  • if (!(len && rb_enc_islower(*name, enc) && rb_enc_symname2_p(s,
    len, enc))
  • || rb_reserved_word(name, len)) {
    compile_error(PARSER_ARG “named capture with a non local
    variable - %.*s”,
    len, name);
    return ST_CONTINUE;

e$B;38}7DB@e(B
e$BKL3$F;Bg3XBg3X1!J83X8&5f2Je(BD3
[email protected]

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:32675] /(?a)/ =~ “a”
e$BEy$K$h$k%m!<%+%kJQ?te(B”
on Sat, 22 Dec 2007 05:11:18 +0900, “Keita Y.”
[email protected] writes:
|
|e$B;38}$H?=$7$^$9!#e(B
|
|e$B:rF|$NBhe(B19e$B2s%!<%W%s%=!<%9%5%m%s$G@55,I=8=$Ne(B named capture
|e$B$N7k2L$,%m!<%+%kJQ?t$KBeF~$5$l$k$H$
$&$+$,$$$7$^$7$?$N$G?‘!9;n$7$F$$$?$N$G$9$,!"8=>u$G$OM=Ls8l$N%A%’%C%/$r$7$F$$$J$$$N$GM=Ls8l$NL>A0$r;}$D%m!<%+%kJQ?t$r:n$k$3$H$,=PMh$^$9!#$=$&$7$?%m!<%+%kJQ?t$,B8:_$7$?$H$7$F$b4pK\E*$KL532$@$m$&$H$O;W$$$^$9$,!"0l1~$4Js9p$5$;$FD:$-$^$9!#e(B

e$B$“$j$,$H$&$4$6$$$^$9!#%Q%C%A$OEv$F$F$*$-$^$9!#$?$@!”$3$NItJ,!"e(B
e$B%(%i!<$K$9$k$N$G$O$J$/$?$@C1$KL5;k$9$k$@$1$G$b$h$$$h$&$J5$$,e(B
e$B$7$^$9!#e(B