} else { if (! ((charSet->length == 0) || ( (ch > charSet->length) || ((charSet->bits[byteIndex] & (1 << (ch & 0x7))) == 0) ))) return NULL;
static REState *classMatcher(REGlobalData *globalData,                              REState *x, RENode *target){    REchar ch;    CharSet *charSet;    REuint32 byteIndex;    REuint32 e = x->endIndex;    if (e == globalData->length)        return NULL;    if (target->data.chclass.charSet->bits == NULL) {        if (!processCharSet(globalData, target))            return NULL;    }    charSet = target->data.chclass.charSet;    ch = globalData->input[e];    byteIndex = (REuint32)(ch / 8);    if (target->data.chclass.sense) {        if ((charSet->length == 0) ||              ( (ch > charSet->length)                || ((charSet->bits[byteIndex] & (1 << (ch & 0x7))) == 0) ))            return NULL;    }    else {        if (! ((charSet->length == 0) ||                  ( (ch > charSet->length)                    || ((charSet->bits[byteIndex] & (1 << (ch & 0x7))) == 0) )))            return NULL;    }    if (charSet->length)    /* match empty character */        x->endIndex++;    return x;}