if (BE (num > RE_DUP_MAX, 0)) return -2;
fetch_number (input, token, syntax)     re_string_t *input;     re_token_t *token;     reg_syntax_t syntax;{  int num = -1;  unsigned char c;  while (1)    {      *token = fetch_token (input, syntax);      c = token->opr.c;      if (token->type == OP_CLOSE_DUP_NUM || c == ',')        break;      if (BE (token->type != CHARACTER || c < '0' || '9' < c, 0))        return -2;      num = (num == -1) ? c - '0' : num * 10 + c - '0';    }  if (BE (num > RE_DUP_MAX, 0))    return -2;  return num;}