pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case : (char *) str);
pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case : (unsigned char *) str);
re_string_construct (pstr, str, len, trans, icase)     re_string_t *pstr;     const char *str;     int len, icase;     RE_TRANSLATE_TYPE trans;{  reg_errcode_t ret;  re_string_construct_common (str, len, pstr, trans, icase);  pstr->stop = pstr->len;  /* Set 0 so that this function can initialize whole buffers.  */  pstr->valid_len = 0;  if (len > 0)    {      ret = re_string_realloc_buffers (pstr, len + 1);      if (BE (ret != REG_NOERROR, 0))        return ret;    }  pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case : (char *) str);  pstr->mbs = MBS_ALLOCATED (pstr) ? pstr->mbs : pstr->mbs_case;  if (icase)    {#ifdef RE_ENABLE_I18N      if (MB_CUR_MAX > 1)        build_wcs_upper_buffer (pstr);      else#endif /* RE_ENABLE_I18N  */        build_upper_buffer (pstr);    }  else    {#ifdef RE_ENABLE_I18N      if (MB_CUR_MAX > 1)        build_wcs_buffer (pstr);      else#endif /* RE_ENABLE_I18N  */        {          if (trans != NULL)            re_string_translate_buffer (pstr);          else            pstr->valid_len = len;        }    }  /* Initialized whole buffers, then valid_len == bufs_len.  */  pstr->valid_len = pstr->bufs_len;  return REG_NOERROR;}