throws Throwable
  private static Value pregReplaceString(Env env,					 String patternString,					 String replacement,					 String subject,					 long limit,					 Value countV)    throws Throwable  {    Pattern pattern = compileRegexp(patternString);    // check for e modifier in patternString    int patternFlags = regexpFlags(patternString);    boolean isEval = (patternFlags & REGEXP_EVAL) != 0;    ArrayList<Replacement> replacementProgram      = _replacementCache.get(replacement);    if (replacementProgram == null) {      replacementProgram = compileReplacement(env, replacement, isEval);      _replacementCache.put(replacement, replacementProgram);    }    return pregReplaceStringImpl(env,                                 pattern,                                 replacementProgram,                                 subject,                                 limit,                                 countV,				 isEval);  }