These are syntax error in both parse.y and in Prism ~~~ruby a x in pattern a x: in pattern a &x in pattern a *x => pattern a x: => pattern a &x => pattern ~~~ These are all syntax error in parse.y, all syntax valid in Prism ~...tompng (tomoya ishida)
Shorter reproduction code ~~~ruby /(?<a>foo)/ =~ 'bar' /(?<b>baz)/ =~ 'baz' p b # should be present, got nil with RUBY_BOX=1 ~~~ ~~~ruby /foo/ =~ 'bar' $~ /baz/ =~ 'baz' p $~ # should be MatchData, got nil with RUBY_BOX=1 ...tompng (tomoya ishida)
I found 130 (5 sets of 26 alphabets) characters matching both `\p{S}` and `\p{Word}`. The visual looks like alphabet-ish symbol character ~~~ruby (0..0x10ffff).select{(s=''<<it; s=~/\p{Word}/&&s=~/\p{S}/) rescue false}.map{''<<it}.joi...tompng (tomoya ishida)
In RDoc, comment that starts with "##" is a metaprogramming method definition. If it's not a metaprogramming method definition, "##" shouldn't be used. https://github.com/ruby/rubygems/commit/b1953a3a09tompng (tomoya ishida)
> Isn't it impossible? To match, regexp needs to satisfy negative lookahead, so there should not be anything to capture. As you wrote, captures are not available OUTSIDE of negative lookahead and also in MatchData. But in `/(?!([a-z]...tompng (tomoya ishida)
First issue > This should be false in both cases. I think `Regexp.linear_time?(/(?<=(a))/)` matches in linear time. If the issue is just for inconsistency between lookahead and lookbehind, it's not a bug. Here's an example: ~...tompng (tomoya ishida)