-/* Bits for PL_charclass[]. These use names used in l1_char_class_tab.h but
- * their actual definitions are here. If that has a name not used here, it
- * won't compile. */
-# define _CC_ALNUMC_A (1<<0)
-# define _CC_ALNUMC_L1 (1<<1)
-# define _CC_ALPHA_A (1<<2)
-# define _CC_ALPHA_L1 (1<<3)
-# define _CC_BLANK_A (1<<4)
-# define _CC_BLANK_L1 (1<<5)
-# define _CC_CHARNAME_CONT (1<<6)
-# define _CC_CNTRL_A (1<<7)
-# define _CC_CNTRL_L1 (1<<8)
-# define _CC_DIGIT_A (1<<9)
-# define _CC_GRAPH_A (1<<10)
-# define _CC_GRAPH_L1 (1<<11)
-# define _CC_IDFIRST_A (1<<12)
-# define _CC_IDFIRST_L1 (1<<13)
-# define _CC_LOWER_A (1<<14)
-# define _CC_LOWER_L1 (1<<15)
-# define _CC_PRINT_A (1<<17)
-# define _CC_PRINT_L1 (1<<18)
-# define _CC_PSXSPC_A (1<<19)
-# define _CC_PSXSPC_L1 (1<<20)
-# define _CC_PUNCT_A (1<<21)
-# define _CC_PUNCT_L1 (1<<22)
-# define _CC_SPACE_A (1<<23)
-# define _CC_SPACE_L1 (1<<24)
-# define _CC_UPPER_A (1<<25)
-# define _CC_UPPER_L1 (1<<26)
-# define _CC_WORDCHAR_A (1<<27)
-# define _CC_WORDCHAR_L1 (1<<28)
-# define _CC_XDIGIT_A (1<<29)
-# define _CC_NONLATIN1_FOLD (1<<30)
-# define _CC_QUOTEMETA (1U<<31) /* 1U keeps Solaris from griping */
-/* Unused: (1<<16)
- * If more are needed, can give up some of the above. The first ones to go
- * would be those that require just two tests to verify; either there are two
- * code points, like BLANK_A, or it occupies a single range like DIGIT_A,
- * UPPER_A, and LOWER_A. Also consider the ones that can be replaced with two
- * tests and an additional mask, so
- *
- * #define isCNTRL_A cBOOL(FITS_IN_8_BITS(c) \
- * && (( ! (~0x1F & NATIVE_TO_UNI(c)])) \
- * || UNLIKELY(NATIVE_TO_UNI(c) == 0x7f)))
- *
- * This takes advantage of the contiguous block of these with the first one's
- * representation having the lower order bits all zero;, except the DELETE must
- * be tested specially. A similar pattern can be used for for isCNTRL_L1,
- * isPRINT_A, and isPRINT_L1
- */
+
+/* Character class numbers. These are used in PL_charclass[] and the ones
+ * up through the one that corresponds to <_HIGHEST_REGCOMP_DOT_H_SYNC> are
+ * used by regcomp.h. These use names used in l1_char_class_tab.h but their
+ * actual definitions are here. If that has a name not used here, it won't
+ * compile. */
+# define _CC_WORDCHAR 0
+# define _CC_SPACE 1
+# define _CC_DIGIT 2
+# define _CC_ALNUMC 3
+# define _CC_ALPHA 4
+# define _CC_ASCII 5
+# define _CC_CNTRL 6
+# define _CC_GRAPH 7
+# define _CC_LOWER 8
+# define _CC_PRINT 9
+# define _CC_PUNCT 10
+# define _CC_UPPER 11
+# define _CC_XDIGIT 12
+# define _CC_PSXSPC 13
+# define _CC_BLANK 14
+# define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_BLANK
+
+# define _CC_IDFIRST 15
+# define _CC_CHARNAME_CONT 16
+# define _CC_NONLATIN1_FOLD 17
+# define _CC_QUOTEMETA 18
+# define _CC_NON_FINAL_FOLD 19
+/* Unused: 20-31
+ * If more bits are needed, one could add a second word for non-64bit
+ * QUAD_IS_INT systems, using some #ifdefs to distinguish between having a 2nd
+ * word or not. */