mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map = (from == to ? ~0 : 0);
match_ctx_add_entry (mctx, node, str_idx, from, to)     re_match_context_t *mctx;     int node, str_idx, from, to;{  if (mctx->nbkref_ents >= mctx->abkref_ents)    {      struct re_backref_cache_entry* new_entry;      new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry,			      mctx->abkref_ents * 2);      if (BE (new_entry == NULL, 0))	{	  re_free (mctx->bkref_ents);	  return REG_ESPACE;	}      mctx->bkref_ents = new_entry;      memset (mctx->bkref_ents + mctx->nbkref_ents, '\0',	      sizeof (struct re_backref_cache_entry) * mctx->abkref_ents);      mctx->abkref_ents *= 2;    }  if (mctx->nbkref_ents > 0      && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx)    mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1;  mctx->bkref_ents[mctx->nbkref_ents].node = node;  mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx;  mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from;  mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to;  mctx->bkref_ents[mctx->nbkref_ents++].more = 0;  if (mctx->max_mb_elem_len < to - from)    mctx->max_mb_elem_len = to - from;  return REG_NOERROR;}