in reply to Matching behavior with (?^u)

This was fixed in 5.17.3 by the following commit:
commit 34b39fc9cd81fbff0d52451a5c4570293817ca32 Author: Karl Williamson <public@khwilliamson.com> Date: Thu Aug 9 14:38:03 2012 -0600 regcomp.c: Set flags when optimizing a [char class] A bracketed character class containing a single Latin1-range chara +cter has long been optimized into an EXACT node. Also, flags are set t +o include SIMPLE. However, EXACT nodes containing code points that +are different when encoded under UTF-8 versus not UTF-8 should not be +marked simple. To fix this, the address of the flags parameter is now passed to regclass(), the function that parses bracketed character classes, +which now sets it appropriately. The unconditional setting of SIMPLE th +at was always done in the code after calling regclass() has been removed. In addition, the setting of the flags for EXACT nodes has been pus +hed into the common function that populates them. regclass() will also now increment the naughtiness count if optimi +zed to a node that normally does that. I do not understand this heuristi +c behavior very well, and could not come up with a test case for it; experimentation revealed that there are no test cases in our test +suite for which naughtiness makes any difference at all.

Dave.

Replies are listed 'Best First'.
Re^2: Matching behavior with (?^u)
by snoozeagain (Initiate) on Sep 14, 2012 at 08:46 UTC
    Thanks Dave.

    “there are no test cases in our test suite for which naughtiness makes any difference at all”—at least that made for an amusing start into the day…