[ruby-core:116609] [Ruby master Bug#18009] Regexps \w and \W with /i option and /u option produce inconsistent results under nested negation and intersection
From:
mjrzasa via ruby-core <ruby-core@...>
Date:
2024-02-06 20:33:43 UTC
List:
ruby-core #116609
SXNzdWUgIzE4MDA5IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWpyemFzYSAoTWFjaWVrIFJ6xIVzYSku DQ0KDQ0KDQ0KT25lIG1vcmUgY2FzZToNDQpgYGANDQpbMjZdIHByeShtYWluKT4gKCJhIi4uInoi KS50b19hLmpvaW4uc2NhbigvW1xXXS9pdSkgIA0NCj0+IFsic3QiXQ0NCmBgYA0NCg0NCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NDQpCdWcgIzE4MDA5OiBSZWdleHBz IFx3IGFuZCBcVyB3aXRoIC9pIG9wdGlvbiBhbmQgL3Ugb3B0aW9uIHByb2R1Y2UgaW5jb25zaXN0 ZW50IHJlc3VsdHMgdW5kZXIgbmVzdGVkIG5lZ2F0aW9uIGFuZCBpbnRlcnNlY3Rpb24NDQpodHRw czovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTgwMDkjY2hhbmdlLTEwNjYyMQ0NCg0NCiog QXV0aG9yOiBqaXJrYW1hcnNpayAoSmlya2EgTWFyc2lrKQ0NCiogU3RhdHVzOiBPcGVuDQ0KKiBQ cmlvcml0eTogTm9ybWFsDQ0KKiBydWJ5IC12OiBydWJ5IDMuMC4xcDY0ICgyMDIxLTA0LTA1IHJl dmlzaW9uIDBmYjc4MmVlMzgpIFt4ODZfNjQtbGludXhdDQ0KKiBCYWNrcG9ydDogMi42OiBVTktO T1dOLCAyLjc6IFVOS05PV04sIDMuMDogVU5LTk9XTg0NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NDQpUaGlzIGlzIGEgZm9sbG93IHVwIHRvIFtpc3N1ZSA0MDQ0XSho dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvNDA0NCkuIEl0cyBmaXggKGh0dHBzOi8v Z2l0aHViLmNvbS9rLXRha2F0YS9PbmlnbW8vaXNzdWVzLzQpIGhhbmRsZWQgdGhlIGNhc2VzIHRo YXQgd2VyZSByZXBvcnRlZCBpbiB0aGUgb3JpZ2luYWwgaXNzdWUsIGJ1dCB0aGVyZSBhcmUgb3Ro ZXIgY2FzZXMsIHdoaWNoIHdlcmUgb21pdHRlZCBhbmQgbm93IHByb2R1Y2UgaW5jb25zaXN0ZW50 IHJlc3VsdHMuDQ0KDQ0KSWYgdGhlIGBcd2AgY2hhcmFjdGVyIHNldCBpcyB1c2VkIGluc2lkZSBh IG5lc3RlZCBuZWdhdGVkIGNoYXJhY3RlciBjbGFzcywgaXQgd2lsbCBub3QgYmUgcGlja2VkIHVw IGJ5IHRoZSBwYXJ0IG9mIHRoZSBjaGFyYWN0ZXIgY2xhc3MgYW5hbHl6ZXIgdGhhdCdzIHJlc3Bv bnNpYmxlIGZvciBsaW1pdGluZyB0aGUgY2FzZS1mb2xkaW5nIG9mIGNlcnRhaW4gY2hhcmFjdGVy IHNldHMgKGxpa2UgYFx3YCBhbmQgYFxXYCkgYWNyb3NzIHRoZSBBU0NJSSBib3VuZGFyeS4gV2Ug dGhlbiBlbmQgdXAgd2l0aCB0aGUgc2l0dWF0aW9uIHdoZXJlIGAvW15cd10vaXVgIGFuZCBgL1tb Xlx3XV0vaXVgIG1hdGNoIGRpZmZlcmVudCBzZXRzIG9mIGNoYXJhY3RlcnMuDQ0KDQ0KYGBgDQ0K aXJiKG1haW4pOjAwMTowPiAoImEiLi4ieiIpLnRvX2Euam9pbi5zY2FuKC9cVy9pdSkNDQo9PiBb XQ0NCmlyYihtYWluKTowMDI6MD4gKCJhIi4uInoiKS50b19hLmpvaW4uc2NhbigvW15cd10vaXUp DQ0KPT4gW10NDQppcmIobWFpbik6MDAzOjA+ICgiYSIuLiJ6IikudG9fYS5qb2luLnNjYW4oL1tb Xlx3XV0vaXUpDQ0KPT4gWyJrIiwgInMiXQ0NCmBgYA0NCg0NClRoaXMgY2FuIGFsc28gYmUgZGVt b25zdHJhdGVkIHVzaW5nIHRoZSBpbnZlcnRlZCBtYXRjaGVyOg0NCg0NCmBgYA0NCmlyYihtYWlu KTowMDQ6MD4gKCJhIi4uInoiKS50b19hLmpvaW4uc2NhbigvXHcvaXUpLmxlbmd0aA0NCj0+IDI2 DQ0KaXJiKG1haW4pOjAwNTowPiAoImEiLi4ieiIpLnRvX2Euam9pbi5zY2FuKC9bXlteXHddXS9p dSkubGVuZ3RoDQ0KPT4gMjQNDQpgYGANDQoNDQpBIHNpbWlsYXIgaXNzdWUgYWxzbyBhcmlzZXMg d2hlbiB1c2luZyBjaGFyYWN0ZXIgY2xhc3MgaW50ZXJzZWN0aW9uLiBUaGUgaWRlYSBiZWhpbmQg dGhlIHBhdHRlcm4gY29tcGlsZXIncyBhbmFseXNpcyBpcyB0aGF0IGNoYXJhY3RlcnMgYXJlIGFs bG93ZWQgdG8gY2FzZS1mb2xkIGFjcm9zcyB0aGUgQVNDSUkgYm91bmRhcnkgb25seSBpZiB0aGV5 IGFyZSBpbmNsdWRlZCBpbiB0aGUgY2hhcmFjdGVyIGNsYXNzIGJ5IHNvbWUgb3RoZXIgbWVhbnMg dGhhbiBqdXN0IGJlaW5nIGluY2x1ZGVkIGluIGBcd2AgKG9yIGluIG9uZSBvZiBzZXZlcmFsIG90 aGVyIGNoYXJhY3RlciBzZXRzIHdoaWNoIGhhdmUgc3BlY2lhbCB0cmVhdG1lbnQpLiBUaGVyZWZv cmUsIGluIHRoZSBiZWxvdywgYC9bXHddL2l1YCB3aWxsIG5vdCBtYXRjaCB0aGUgS2VsdmluIHNp Z24gYFx1MjEyYWAsIGJlY2F1c2UgdGhhdCB3b3VsZCBtZWFuIGNyb3NzaW5nIHRoZSBBU0NJSSBi b3VuZGFyeSBmcm9tIGBrYCB0byBgXHUyMTJhYC4gSG93ZXZlciwgYC9ba3hdL2l1YCB3aWxsIG1h dGNoIHRoZSBLZWx2aW4gc2lnbiwgYmVjYXVzZSB0aGUgYGtgIHdhcyBub3QgY29udHJpYnV0ZWQg YnkgYFx3YCBhbmQgdGhlcmVmb3JlIGlzIG5vdCBzdWJqZWN0IHRvIHRoZSBBU0NJSSBib3VuZGFy eSByZXN0cmljdGlvbiAod2UgaGF2ZSB0byB1c2UgYC9ba3hdL2l1YCBpbnN0ZWFkIG9mIGAvW2td L2l1YCBpbiBvdXIgZXhhbXBsZXMsIG9yIGVsc2UgdGhlIHBhdHRlcm4gYW5hbHl6ZXIgd291bGQg cmVwbGFjZSBgW2tdYCB3aXRoIGBrYCBhbmQgZm9sbG93IGEgZGlmZmVyZW50IGNvZGUgcGF0aCku DQ0KDQ0KYGBgDQ0KaXJiKG1haW4pOjAwNjowPiAvW1x3XS9pdS5tYXRjaCgiXHUyMTJhIikNDQo9 PiBuaWwNDQppcmIobWFpbik6MDA3OjA+IC9ba3hdL2l1Lm1hdGNoKCJcdTIxMmEiKQ0NCj0+ICM8 TWF0Y2hEYXRhICLihKoiPg0NCmBgYA0NCg0NClRoZSBwcm9ibGVtIHRoZW4gaXMgd2hlbiB3ZSBw ZXJmb3JtIGFuIGludGVyc2VjdGlvbiBvZiB0aGVzZSB0d28gY2hhcmFjdGVyIHNldHMuIFNpbmNl IGBba3hdYCBpcyBhIHN1YnNldCBvZiBgXHdgLCB3ZSB3b3VsZCBleHBlY3QgdGhlaXIgaW50ZXJz ZWN0aW9uIHRvIGJlaGF2ZSB0aGUgc2FtZSBhcyBgW2t4XWAsIGJ1dCB0aGF0IGlzIG5vdCB0aGUg Y2FzZS4NDQoNDQpgYGANDQppcmIobWFpbik6MDA4OjA+IC9bXHcmJmt4XS9pLm1hdGNoKCJcdTIx MmEiKQ0NCj0+IG5pbA0NCmBgYA0NCg0NClRoZSB1bmRlcmx5aW5nIGlzc3VlIGluIHRoZXNlIGNh c2VzIGlzIHRoZSBtYW5uZXIgaW4gd2hpY2ggdGhlIGBhc2NDY2AgY2hhcmFjdGVyIHNldCBpcyBj b21wdXRlZCBkdXJpbmcgdGhlIHBhcnNpbmcgb2YgY2hhcmFjdGVyIGNsYXNzZXMuIFRoZSBgYXNj Q2NgIGNoYXJhY3RlciBzZXQgc2hvdWxkIGNvbnRhaW4gYWxsIGNoYXJhY3RlcnMgb2YgdGhlIGNo YXJhY3RlciBjbGFzcyBleGNlcHQgdGhvc2Ugd2hpY2ggd2VyZSBjb250cmlidXRlZCBieSBgXHdg IGFuZCBzaW1pbGFyIGNoYXJhY3RlciBzZXRzLiBUaGlzIGlzIGRvbmUgaW4gYSB3YXkgdGhhdCB0 aGVzZSBjaGFyYWN0ZXIgc2V0cyBhcmUgZXNzZW50aWFsbHkgaWdub3JlZCBpbiB0aGUgY2FsY3Vs YXRpb24gb2YgYGFzY0NjYCwgd2hpY2ggd29ya3Mgd2VsbCBmb3Igc2V0IHVuaW9uIGFuZCB0b3At bW9zdCBuZWdhdGlvbiAod2hpY2ggaXMgaGFuZGxlZCBleHBsaWNpdGx5KSwgYnV0IGl0IGRvZXNu J3QgaGFuZGxlIG5lc3RlZCBzZXQgbmVnYXRpb24gYW5kIHNldCBpbnRlcnNlY3Rpb24uDQ0KDQ0K DQ0KDQ0KLS0gDQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQ0KIF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3Qg LS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1h aWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0t IGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9wb3N0b3JpdXMvbGlzdHMvcnVieS1j b3JlLm1sLnJ1YnktbGFuZy5vcmcv