code: public static String removePattern(final String source, final String regex) {
          return replacePattern(source, regex, StringUtils.EMPTY);
      }
docs: <p>Removes each substring of the source String that matches the given regular expression using the DOTALL option.
  </p>
  
  This call is a {@code null} safe equivalent to:
  <ul>
  <li>{@code source.replaceAll(&quot;(?s)&quot; + regex, StringUtils.EMPTY)}</li>
  <li>{@code Pattern.compile(regex, Pattern.DOTALL).matcher(source).replaceAll(StringUtils.EMPTY)}</li>
  </ul>
  
  <p>A {@code null} reference passed to this method is a no-op.</p>
  
  <pre>
  StringUtils.removePattern(null, *)       = null
  StringUtils.removePattern("any", null)   = "any"
  StringUtils.removePattern("A&lt;__&gt;\n&lt;__&gt;B", "&lt;.*&gt;")  = "AB"
  StringUtils.removePattern("ABCabc123", "[a-z]")    = "ABC123"
  </pre>
  
  @param source
  the source string
  @param regex
  the regular expression to which this string is to be matched
  @return The resulting {@code String}
  @see #replacePattern(String, String, String)
  @see String#replaceAll(String, String)
  @see Pattern#DOTALL
  @since 3.2
  @since 3.5 Changed {@code null} reference passed to this method is a no-op.