- case 'u':
- if (strnEQ(posixcc, "upper", 5))
- namedclass =
- complement ? ANYOF_NUPPER : ANYOF_UPPER;
- break;
- case 'w': /* this is not POSIX, this is the Perl \w */
- if (strnEQ(posixcc, "word", 4)) {
- namedclass =
- complement ? ANYOF_NALNUM : ANYOF_ALNUM;
- skip = 4;
+ case 5:
+ /* Names all of length 5. */
+ /* alnum alpha ascii blank cntrl digit graph lower
+ print punct space upper */
+ /* Offset 4 gives the best switch position. */
+ switch (posixcc[4]) {
+ case 'a':
+ if (memEQ(posixcc, "alph", 4)) {
+ /* a */
+ namedclass
+ = complement ? ANYOF_NALPHA : ANYOF_ALPHA;
+ }
+ break;
+ case 'e':
+ if (memEQ(posixcc, "spac", 4)) {
+ /* e */
+ namedclass
+ = complement ? ANYOF_NPSXSPC : ANYOF_PSXSPC;
+ }
+ break;
+ case 'h':
+ if (memEQ(posixcc, "grap", 4)) {
+ /* h */
+ namedclass
+ = complement ? ANYOF_NGRAPH : ANYOF_GRAPH;
+ }
+ break;
+ case 'i':
+ if (memEQ(posixcc, "asci", 4)) {
+ /* i */
+ namedclass
+ = complement ? ANYOF_NASCII : ANYOF_ASCII;
+ }
+ break;
+ case 'k':
+ if (memEQ(posixcc, "blan", 4)) {
+ /* k */
+ namedclass
+ = complement ? ANYOF_NBLANK : ANYOF_BLANK;
+ }
+ break;
+ case 'l':
+ if (memEQ(posixcc, "cntr", 4)) {
+ /* l */
+ namedclass
+ = complement ? ANYOF_NCNTRL : ANYOF_CNTRL;
+ }
+ break;
+ case 'm':
+ if (memEQ(posixcc, "alnu", 4)) {
+ /* m */
+ namedclass
+ = complement ? ANYOF_NALNUMC : ANYOF_ALNUMC;
+ }
+ break;
+ case 'r':
+ if (memEQ(posixcc, "lowe", 4)) {
+ /* r */
+ namedclass
+ = complement ? ANYOF_NLOWER : ANYOF_LOWER;
+ }
+ if (memEQ(posixcc, "uppe", 4)) {
+ /* r */
+ namedclass
+ = complement ? ANYOF_NUPPER : ANYOF_UPPER;
+ }
+ break;
+ case 't':
+ if (memEQ(posixcc, "digi", 4)) {
+ /* t */
+ namedclass
+ = complement ? ANYOF_NDIGIT : ANYOF_DIGIT;
+ }
+ if (memEQ(posixcc, "prin", 4)) {
+ /* t */
+ namedclass
+ = complement ? ANYOF_NPRINT : ANYOF_PRINT;
+ }
+ if (memEQ(posixcc, "punc", 4)) {
+ /* t */
+ namedclass
+ = complement ? ANYOF_NPUNCT : ANYOF_PUNCT;
+ }
+ break;