[ruby-core:73689] [Ruby trunk Bug#4044] Regex matching errors when using \W character class and /i option

From: matthew@...
Date: 2016-02-03 22:44:23 UTC
List: ruby-core #73689
SXNzdWUgIzQwNDQgaGFzIGJlZW4gdXBkYXRlZCBieSBNYXR0aGV3IEtlcndpbi4KCgpNYXJ0aW4g
RMO8cnN0IHdyb3RlOgo+IE9uIDIwMTYvMDIvMDMgMTI6MjEsIG1hdHRoZXdAa2Vyd2luLm5ldC5h
dSB3cm90ZToKPiAgCj4gID4gSSB3YW50IHRvIHdyaXRlIGEgc3BlYyBmb3IgdGhpcywgYnV0IHNv
bWUgb2YgdGhlIGRldGFpbHMgYXJlIHVuY2xlYXIgdG8gbWUuIENhbiB3ZSBjb25maXJtIHdoZXRo
ZXIgZWFjaCBvZiB0aGUgZm9sbG93aW5nIGFyZSBzcGVjPwo+ICAKPiAgUGxlYXNlIGRvbid0IGp1
c3QgYXNzdW1lIHRoYXQgdGhlIGN1cnJlbnQgYmVoYXZpb3IgaXMgc3BlYy4KCkluZGVlZCwgdGhh
dCdzIHdoeSBJIGFza2VkLgoKPiAgSWYgaXQgCj4gIGRvZXNuJ3QgbWF0Y2ggd2l0aCBjb21tb24g
c2Vuc2UgaW4gYW55IHdheSwgaXQncyB2ZXJ5IGNsZWFyIHRoYXQgd2UgaGF2ZSAKPiAgdG8gZml4
IGl0LiBUaGVyZSBtYXkgYmUgYm9yZGVybGluZSBjYXNlcyB0aGF0IGFyZSB1cCBmb3IgZGlzY3Vz
c2lvbiwgYnV0IAo+ICBhdCBsZWFzdCBtb3N0IG9mIHRoZSBleGFtcGxlcyBJIGhhdmUgc2VlbiBk
b24ndCBtZWV0IHRoYXQgY3JpdGVyaW9uLgo+CgpDb25mdXNpb24gYWJvdW5kcy4gSSB0aG91Z2h0
IHRoYXQgaWYgdGhlcmUgd2FzIGEgZm9ybWFsIHNwZWMsIGF0IGxlYXN0IHRoYXQgd291bGQgZ2l2
ZSBhIHNvbGlkIGdyb3VuZGluZyB0byBzdGFydCBmcm9tLiBBcyBpdCBpcyB3ZSByZWx5IG9uIGlt
cGxlbWVudGF0aW9ucyB0byBkZXNjcmliZSB3aGF0IHNob3VsZC9kb2VzIGhhcHBlbiwgd2hpY2gg
aXMgaW1wZXJmZWN0IGFuZCBhbGxvd3MgdXMgdG8gY29uZnVzZSBidWdzIHdpdGggc3BlYy4KCihS
aWdodCBub3cgSSdtIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIHdoeSBgL1tcV10vaSA9fiAn
aycgIz0+IG5pbGApCgo+ICBNeSB1bmRlcnN0YW5kaW5nIHdhcyB0aGF0IEtlbiBUYWthdGEgZml4
ZWQgdGhlIHByb2JsZW0gd2l0aCByNDc1OTgsIGJ1dCAKPiAgSSdsbCB0cnkgdG8gaGF2ZSBhbm90
aGVyIGxvb2sgYXQgdGhhdC4KPiAgCj4gIFdoZW4gSSBsb29rZWQgYXQgS2VuJ3Mgc29sdXRpb24g
bGFzdCB0aW1lCj4gICh0aGUgZGV0YWlscyBhcmUgYXQgdGhlIGZvbGxvd2luZyBsaW5rLCBpbiBK
YXBhbmVzZQo+ICBodHRwczovL2dpdGh1Yi5jb20vay10YWthdGEvT25pZ21vL2lzc3Vlcy80KSwg
aXQgaW5jbHVkZWQgc29tZSBhc3BlY3RzIAo+ICByZWxhdGVkIHRvIEFTQ0lJLCB3aGljaCBrZWVw
cyBjb25mdXNpbmcgbWUuCj4KCkkndmUgbG9va2VkIGF0IHRoYXQgaXNzdWUsIGJ1dCBJJ20gYWZy
YWlkIEkgY2FuJ3QgcmVhZCBKYXBhbmVzZSAoYW5kIEdvb2dsZSB0cmFuc2xhdGUgb25seSBnZXRz
IG1lIHNvIGZhci4pIEkgdGhpbmsgSSBnZXQgdGhlIGdpc3Qgb2YgaXQsIGJ1dCBhbnkgc3VidGxl
dHkgaXMgcHJvYmFibHkgbG9zdCB0byBtZS4KCj4gIFRoZSByZWxldmFudCBzcGVjaWZpY2F0aW9u
IGlzIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkICMxOCwgVW5pY29kZSAKPiAgUmVndWxhciBF
eHByZXNzaW9ucywgaW4gcGFydGljdWxhciAKPiAgaHR0cDovL3d3dy51bmljb2RlLm9yZy9yZXBv
cnRzL3RyMTgvI1NpbXBsZV9Mb29zZV9NYXRjaGVzLiBUaGVyZSBhcmUgCj4gIHZhcmlvdXMgY2hv
aWNlcyBhdCB0aGUgZW5kIG9mIHRoYXQgc2VjdGlvbiB0aGF0IGFyZSByZWxldmFudCB0byB0aGlz
IGlzc3VlLgo+ICAKPiAgTXkgcGVyc29uYWwgcHJlZmVyZW5jZSBhbW9uZyB0aGUgY2hvaWNlcyBB
LUQgaXMgQi4gQXMgZmFyIGFzIEkgCj4gIHVuZGVyc3RhbmQgaXQsIGl0IHdvdWxkIG1lYW4gdGhh
dCB3aGlsZSBhIC9pIG9wdGlvbiB3b3VsZCBjaGFuZ2UgaG93IAo+ICBsaXRlcmFsIGNoYXJhY3Rl
cnMgYXJlIG1hdGNoZWQsIGl0IHdvdWxkIG5vdCBhZmZlY3QgaG93IGl0IGFmZmVjdHMgCj4gIHBy
b3BlcnRpZXMgc3VjaCBhcyBcVy4KPgoKSSBzdXBwb3NlIHdlJ3JlIGluIGNob2ljZSBEIGF0IHRo
ZSBtb21lbnQgKHRoYXQgd291bGQgZXhwbGFpbiB3aHkgYC9cVy9pYCBhbmQgYC9bXFddL2lgIG1h
dGNoIGRpZmZlcmVudGx5LCkgYnV0IGp1c3Qgd2hpY2ggInNwZWNpZmljIHByb3BlcnRpZXMgYW5k
L29yIGV4cGxpY2l0IGNoYXJhY3RlciBjbGFzc2VzIiByZW1haW5zIHVuY2xlYXIuIERvY3VtZW50
aW5nIHRob3NlIChhbmQgd3JpdGluZyBhIHNwZWMpIHdvdWxkIGhlbHAuCgo+ICBNeSBqdXN0aWZp
Y2F0aW9uIGZvciB0aGlzIGlzIGFzIGZvbGxvd3M6IElmIEkgd2FudCBlLmcuIGEgd29yZCAKPiAg
Y2hhcmFjdGVyLCB0aGVuIHRoYXQgYWxyZWFkeSBzaG91bGQgaW5jbHVkZSBhbGwgdGhlIG5lY2Vz
c2FyeSAKPiAgY2hhcmFjdGVycywgYm90aCB1cHBlciBhbmQgbG93ZXIgY2FzZSAoYW5kIHRpdGxl
IGNhc2UganVzdCBpbiBjYXNlIHlvdSAKPiAgZm9yZ290IGFib3V0IGl0IDotKS4gSXQncyBkaWZm
aWN1bHQgdG8gc2VlIHdoeSBJJ2Qgd2FudCB0aGUgc2V0IG9mIAo+ICBjaGFyYWN0ZXJzIHRvIGNo
YW5nZSB3aGVuIGFkZGluZyAvaS4gVGhlIHNhbWUgYXJndW1lbnQgY2FuIGJlIGFwcGxpZWQgdG8g
Cj4gIFxXIGFuZCBtb3N0IGlmIG5vdCBhbGwgc2ltaWxhciBjYXNlcy4KPgoKV2hlbiB3ZSB3ZXJl
IGRpc2N1c3NpbmcgaXQgb24gUnVieSBUYWxrIHRoZSBvdGhlciBkYXkgSSBjYW1lIHVwIHdpdGgg
dGhpczoKCiogdGhlICfvrIAnIGxpZ2F0dXJlIGlzIGEgbm9uLXdvcmQgY2hhcmFjdGVyCiogaXQg
aGFzIGEgY2FzZSBjb252ZXJzaW9uLCBzbyBpcyBhZmZlY3RlZCBieSB0aGUgYC8vaWAgZmxhZwoK
U286CgoqIGAv76yAL2AgaXMgYSBzdWJzZXQgb2YgYC9cVy9gCiogYC/vrIAvaWAgbWF0Y2hlcyAn
76yAJywgJ0ZGJywgJ2ZmJywgJ2ZGJywgYW5kICdGZicKKiB0aGVyZWZvcmUgYC9cVy9pYCBzaG91
bGQgbWF0Y2ggYWxsIG9mIHRoZSBhYm92ZQoKVGhlIGZpcnN0IHR3byBkb3QgcG9pbnRzIGFyZSB3
aGVyZSBJIHNlZSB0aGUgY29udGVudGlvbi4gSWYgSSB3ZXJlIHRvIG1ha2UgYSBnZW5lcmFsIHJ1
bGUsIEknZCBzYXkgdGhhdCAiXFciIHNob3VsZCBub3QgYmUgZXhwYW5kZWQgZm9yIGNhc2UtZm9s
ZGluZywgc2luY2UgJ2Nhc2UnIGlzIGEgcHJvcGVydHkgb2Ygd29yZCBjaGFyYWN0ZXJzLiAoSWYg
YW55dGhpbmcgbWF0Y2hlcyAiXFciIGl0IGlzLCBieSBkZWZpbml0aW9uLCBub3QgYSB3b3JkIGNo
YXJhY3Rlciwgc28gc2hvdWxkIG5vdCBiZSBzdWJqZWN0IHRvIHdvcmQtdHlwZSBvcGVyYXRpb25z
IGxpa2UgY2FzZS1mb2xkaW5nLikKCklmIHRoYXQgd2VyZSBzbywgYC/vrIAvaWAgKGFuZCB0aGVy
ZWZvcmUgYC9cVy9pYCkgd291bGQgbWF0Y2ggJ++sgCcgYnV0IG5vdCAnRkYnLgoKVGhhdCB3b3Vs
ZCwgSSB0aGluaywgbWFrZSBgXFdgIGEgcGVyZmVjdCBjb21wbGVtZW50IHRvIGBcd2AgKGlkZW50
aWNhbCB0byBgW15cd11gKTsgd2hpY2ggc2VlbXMgdG8gYmUgd2hhdCBwZW9wbGUgZXhwZWN0LgoK
SSB0aGluayB0aGF0IG1lYW5zIHlvdSBhbmQgSSBhcmUgc2F5aW5nIHRoZSBzYW1lIHRoaW5nLCBp
biBkaWZmZXJlbnQgd2F5cy4KCj4gIFRoZSBjYXNlIHRoYXQgSSB0aGluayBjYW4gYmUgdXAgZm9y
IGRpc2N1c3Npb24gaXMgZXhwbGljaXQgY2hhcmFjdGVyIAo+ICBjbGFzc2VzLCBzdWNoIGFzIFth
LXpdLiBIZXJlLCBpbiBlZmZlY3QgYXV0b21hdGljYWxseSBhZGRpbmcgQS1aIChhbmQgCj4gIHNv
bWUgb3RoZXIgY2FzZSBlcXVpdmFsZW50cykgbWF5IGluZGVlZCBtYWtlIHNlbnNlLgoKQ2VydGFp
bmx5OyBJIHVzZSBgL1swLTlhLWZdL2lgIG15c2VsZiBmb3IgbWF0Y2hpbmcgaGV4YWRlY2ltYWwg
bnVtYmVycyAoYW5kIHNpbWlsYXIgcGF0dGVybnMgZm9yIHNpbWlsYXIgdGhpbmdzLikgIEhvd2V2
ZXIgd2hlcmUgd291bGQgdGhhdCBsZWF2ZSB1cyB3aXRoIGAvW2EtZVxXXS9pYCA/CgotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkJ1ZyAjNDA0NDogUmVnZXggbWF0Y2hp
bmcgZXJyb3JzIHdoZW4gdXNpbmcgXFcgY2hhcmFjdGVyIGNsYXNzIGFuZCAvaSBvcHRpb24KaHR0
cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzQwNDQjY2hhbmdlLTU2ODg2CgoqIEF1dGhv
cjogQmVuIEhvc2tpbmdzCiogU3RhdHVzOiBDbG9zZWQKKiBQcmlvcml0eTogTm9ybWFsCiogQXNz
aWduZWU6IFl1aSBOQVJVU0UKKiBydWJ5IC12OiBydWJ5IDEuOS4ycDAgKDIwMTAtMDgtMTggcmV2
aXNpb24gMjkwMzYpIFt4ODZfNjQtZGFyd2luMTAuNC4wXQoqIEJhY2twb3J0OiAKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo9YmVnaW4KIEhpIGFsbCwKIAogSm9zaCBC
YXNzZXR0IGFuZCBJIGp1c3QgZGlzY292ZXJlZCBhbiBpc3N1ZSB3aXRoIHJlZ2V4IG1hdGNoZXMg
b24gcnVieS0xLjkuMnAwLiAoV2UgcmVkdWNlZCBpdCB3aGlsZSB3ZSB3ZXJlIGhhY2tpbmcgb24g
Z2VtY3V0dGVyLikKIAogVGhlIGNhc2UtaW5zZW5zaXRpdmUgKC9pKSBvcHRpb24gdG9nZXRoZXIg
d2l0aCB0aGUgbm9uLXdvcmQgY2hhcmFjdGVyIGNsYXNzIChcVykgbWF0Y2ggaW5jb25zaXN0ZW50
bHkgYWdhaW5zdCB0aGUgYWxwaGFiZXQuIFNwZWNpZmljYWxseSB0aGUgcmVnZXggZG9lc24ndCBt
YXRjaCBwcm9wZXJseSBhZ2FpbnN0IHRoZSBsZXR0ZXJzICdrJyBhbmQgJ3MnLgogCiBUaGUgZm9s
bG93aW5nIGV4cHJlc3Npb24gZGVtb25zdHJhdGVzIHRoZSBwcm9ibGVtIGluIGlyYjoKIAogICAg
IHB1dHMgKCdhJy4uJ3onKS50b19hLm1hcCB7fGN8IFtjLCBjLm9yZCwgY1svW15cV10vaV0gXS5p
bnNwZWN0IH0KIAogQXMgYSByZWZlcmVuY2UsIHRoZSBmb2xsb3dpbmcgdHdvIGV4cHJlc3Npb25z
IGFyZSB3b3JraW5nIHByb3Blcmx5OgogCiAgICAgcHV0cyAoJ2EnLi4neicpLnRvX2EubWFwIHt8
Y3wgW2MsIGMub3JkLCBjWy9bXlxXXS9dIF0uaW5zcGVjdCB9CiAgICAgcHV0cyAoJ2EnLi4neicp
LnRvX2EubWFwIHt8Y3wgW2MsIGMub3JkLCBjWy9bXHddL2ldIF0uaW5zcGVjdCB9CiAKIENoZWVy
cwogQmVuIEhvc2tpbmdzICYgSm9zaCBCYXNzZXR0Cj1lbmQKCgoKCi0tIApodHRwczovL2J1Z3Mu
cnVieS1sYW5nLm9yZy8KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1
YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcu
b3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K

In This Thread

Prev Next