case NPOSIXA:
if (utf8_target) {
/* The complement of something that matches only ASCII matches all
- * UTF-8 variant code points, plus everything in ASCII that isn't
- * in the class */
- REXEC_FBC_UTF8_CLASS_SCAN(! UTF8_IS_INVARIANT(*s)
+ * non-ASCII, plus everything in ASCII that isn't in the class. */
+ REXEC_FBC_UTF8_CLASS_SCAN(! isASCII_utf8(s)
|| ! _generic_isCC_A(*s, FLAGS(c)));
break;
}
else {
/* The complement of something that matches only ASCII matches all
- * UTF-8 variant code points, plus everything in ASCII that isn't
- * in the class. */
+ * non-ASCII, plus everything in ASCII that isn't in the class. */
while (hardcount < max && scan < loceol
- && (! UTF8_IS_INVARIANT(*scan)
+ && (! isASCII_utf8(scan)
|| ! _generic_isCC_A((U8) *scan, FLAGS(p))))
{
scan += UTF8SKIP(scan);
([[:^xdigit:]]+) ABcd01Xy__-- ${nulnul}${ffff} y $1 Xy__-- ${nulnul}${ffff}
[[:foo:]] - c - POSIX class [:foo:] unknown
[[:^foo:]] - c - POSIX class [:^foo:] unknown
+'[[:^cntrl:]]+'u a\x80 y $& a \x80 was matching on EBCDIC platforms
((?>a+)b) aaab y $1 aaab
(?>(a+))b aaab y $1 aaa
((?>[^()]+)|\([^()]*\))+ ((abc(ade)ufh()()x y $& abc(ade)ufh()()x