importClass(java.util.ArrayList); importClass(java.util.List); importClass(java.util.regex.Matcher); importClass(java.util.regex.Pattern); importClass(java.util.regex.PatternSyntaxException); var CachedRegexData = []; function regexDataFromRegex(aRegex) { var source = "", flags = ""; if (typeof aRegex == "string") { if (CachedRegexData[aRegex]) return CachedRegexData[aRegex]; string = aRegex; source = aRegex; } else { string = aRegex.toString(); if (CachedRegexData[string]) return CachedRegexData[string]; var index = string.lastIndexOf('/'); source = string.substr(0, index); flags = string.substr(index + 1); } source = source.replace("\\[\\^\\\\\\d\\]", ".", "g"); source = source.replace("\\[([^\\]]*)\\\\b([^\\]]*)\\]", "[$1\\\\cH$2]", "g") // [...\b...] -> [...\cH...] source = source.replace("(?