+ public StringLike replaceFirstRegion(StringLike s, int start, int end)\r
+ {\r
+ first = true;\r
+ return dorep(s, start, end);\r
+ }\r
+\r
+ RegHolder rh = new RegHolder();\r
+\r
+ public StringLike replaceAllRegion(String s, Regex r,\r
+ int start, int end)\r
+ {\r
+ return replaceAllRegion(new StringWrap(s), r, start, end);\r
+ }\r
+\r
+ /** This method replaces all occurences of the Regex in the\r
+ String starting with postition pos\r
+ according to the Replacer rule of this object. */\r
+ public StringLike replaceAllRegion(StringLike s, Regex r,\r
+ int start, int end)\r
+ {\r
+ first = false;\r
+ // reset\r
+ rh.me = r;\r
+ rh.prev = null;\r
+ return dorep(s, start, end);\r
+ }\r
+\r
+ public StringLike replaceAll(StringLike s)\r
+ {\r
+ return replaceAllRegion(s, 0, s.length());\r
+ }\r
+\r
+ public StringLike replaceAllFrom(StringLike s, int start)\r
+ {\r
+ return replaceAllRegion(s, start, s.length());\r
+ }\r
+\r
+ public StringLike replaceAllRegion(StringLike s, int start, int end)\r
+ {\r
+ first = false;\r
+ return dorep(s, start, end);\r
+ }\r
+\r
+ public String replaceAll(String s)\r
+ {\r
+ return replaceAllRegion(new StringWrap(s), 0, s.length()).toString();\r
+ }\r
+\r
+ public String replaceAllFrom(String s, int start)\r
+ {\r
+ return replaceAllRegion(new StringWrap(s), start, s.length()).toString();\r
+ }\r
+\r
+ public String replaceAllRegion(String s, int start, int end)\r
+ {\r
+ first = false;\r
+ return dorep(new StringWrap(s), start, end).toString();\r
+ }\r
+\r
+ final public boolean isSpecial(ReplaceRule x)\r
+ {\r
+ while (x != null)\r
+ {\r
+ if (x instanceof SpecialRule\r
+ ||\r
+ (x instanceof RuleHolder && ( (RuleHolder) x).held instanceof SpecialRule))\r
+ {\r
+ return true;\r
+ }\r
+ x = x.next;\r