throws Throwable
  public static Value quotemeta(String string)    throws Throwable  {    StringBuilder sb = new StringBuilder();    int len = string.length();    for (int i = 0; i < len; i++) {      char ch = string.charAt(i);      switch (ch) {      case '.': case '\\': case '+': case '*': case '?':      case '[': case '^': case ']': case '(': case ')': case '$':        sb.append("\\");        sb.append(ch);        break;      default:        sb.append(ch);        break;      }    }    return new StringValueImpl(sb.toString());  }