// Remove the i flag if it doesn't have any effect.
// E.g. /[a-z0-9_]/i -> /\w/
+ (flags.contains("i") && regexTree.isCaseSensitive() ? "i" : "")
// If the regular expression contains no anchors, then the m flag has
// no effect.
+ (flags.contains("m") && regexTree.containsAnchor() ? "m" : ""));
// Update the original if something was done.
if (!(newPattern.equals(pattern) && newFlags.equals(flags))) {
subtree.getFirstChild().setString(newPattern);
if (!"".equals(newFlags)) {
subtree.getLastChild().setString(newFlags);