@Override
        public Optional<String> apply(String input) {
            final Matcher matcher = expressionPattern.matcher(input);
            if (!matcher.find()) {
                return Optional.empty();
            }
            return Optional.ofNullable(matcher.replaceAll(replacement));
        }
Apply the rule against the input string, returning the modified
string or null if the rule didn't apply (and no modifications were
made)

@param input the input string
@return the modified string if this rule applied, or null if the
input was not modified by this rule
generator-parent/generator-translator/src/main/java/com/speedment/generator/translator/util/Pluralis.java