From: "Martin J. Dürst" Date: 2013-11-12T16:41:13+09:00 Subject: [ruby-core:58287] Re: [ruby-trunk - Bug #4044] Regex matching errors when using \W character class and /i option On 2013/11/07 21:50, rosenfeld (Rodrigo Rosenfeld Rosas) wrote: > > Issue #4044 has been updated by rosenfeld (Rodrigo Rosenfeld Rosas). > > > Shouldn't this bug be mentioned in the docs for \W in the Regexp documentation? > > http://www.ruby-doc.org/core-2.0.0/Regexp.html > > People would like to be aware of it until it's fixed. I'd really prefer it to be fixed, but if you want to contribute a patch on the docu, that would help. Regards, Martin. > ---------------------------------------- > Bug #4044: Regex matching errors when using \W character class and /i option > https://bugs.ruby-lang.org/issues/4044#change-42799 > > Author: ben_h (Ben Hoskings) > Status: Feedback > Priority: Normal > Assignee: naruse (Yui NARUSE) > Category: core > Target version: next minor > ruby -v: ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0] > Backport: > > > =begin > Hi all, > > Josh Bassett and I just discovered an issue with regex matches on ruby-1.9.2p0. (We reduced it while we were hacking on gemcutter.) > > The case-insensitive (/i) option together with the non-word character class (\W) match inconsistently against the alphabet. Specifically the regex doesn't match properly against the letters 'k' and 's'. > > The following expression demonstrates the problem in irb: > > puts ('a'..'z').to_a.map {|c| [c, c.ord, c[/[^\W]/i] ].inspect } > > As a reference, the following two expressions are working properly: > > puts ('a'..'z').to_a.map {|c| [c, c.ord, c[/[^\W]/] ].inspect } > puts ('a'..'z').to_a.map {|c| [c, c.ord, c[/[\w]/i] ].inspect } > > Cheers > Ben Hoskings& Josh Bassett > =end > > >