cur_node = proceed_next_node (preg, mctx, &idx, cur_node, &eps_via_nodes);
cur_node = proceed_next_node (preg, pmatch, mctx, &idx, cur_node, &eps_via_nodes);
set_regs (preg, mctx, nmatch, pmatch, last_node)    const regex_t *preg;    const re_match_context_t *mctx;    size_t nmatch;    regmatch_t *pmatch;    int last_node;{  re_dfa_t *dfa = (re_dfa_t *)preg->buffer;  int idx, cur_node, real_nmatch;  re_node_set eps_via_nodes;#ifdef DEBUG  assert (nmatch > 1);  assert (mctx->state_log != NULL);#endif  cur_node = dfa->init_node;  real_nmatch = (nmatch <= preg->re_nsub) ? nmatch : preg->re_nsub + 1;  re_node_set_init_empty (&eps_via_nodes);  for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;)    {      update_regs (dfa, pmatch, cur_node, idx, real_nmatch);      if (idx == pmatch[0].rm_eo && cur_node == last_node)        break;      /* Proceed to next node.  */      cur_node = proceed_next_node (preg, mctx, &idx, cur_node, &eps_via_nodes);      if (BE (cur_node < 0, 0))        return REG_ESPACE;    }  re_node_set_free (&eps_via_nodes);  return REG_NOERROR;}