SETERROR
SETERROR(REG_ESUBREG);
SETERROR(REG_EESCAPE);
SETERROR(REG_BADBR);
SETERROR(REG_ERANGE);
SETERROR(REG_ECTYPE);
SETERROR(REG_ECTYPE);
SETERROR(REG_EBRACK);
SETERROR(REG_ILLSEQ);
SETERROR(REG_ECOLLATE); /* neither */
SETERROR(REG_ECOLLATE); /* neither */
SETERROR(REG_ASSERT); /* just in case */
SETERROR(REG_ILLSEQ);
SETERROR(REG_ESPACE);
SETERROR(REG_ESPACE);
SETERROR(REG_ESPACE);
SETERROR(REG_ESPACE);
SETERROR(REG_ESPACE);
SETERROR(REG_ESPACE);
#define REQUIRE(co, e) ((co) || SETERROR(e))
SETERROR(REG_ASSERT);
SETERROR(REG_EPAREN);
SETERROR(REG_EMPTY);
SETERROR(REG_BADRPT);
SETERROR(REG_ESUBREG);
SETERROR(REG_EESCAPE);
SETERROR(REG_BADBR);
SETERROR(REG_BADRPT);
SETERROR(REG_EMPTY);
SETERROR(REG_BADRPT);
SETERROR(REG_EPAREN);