code: protected int startsWithIgnoredWord(String word, boolean caseSensitive) {
      if (word.length() < 4) {
        return 0;
      }
      Optional<String> match = Optional.empty();
      if(caseSensitive) {
        Set<String> subset = wordsToBeIgnoredDictionary.get(word.substring(0, 1));
        if (subset != null) {
          match = subset.stream().filter(s -> word.startsWith(s)).max(STRING_LENGTH_COMPARATOR);
        }
      } else {
        String lowerCaseWord = word.toLowerCase();
        Set<String> subset = wordsToBeIgnoredDictionaryIgnoreCase.get(lowerCaseWord.substring(0, 1));
        if (subset != null) {
          match = subset.stream().filter(s -> lowerCaseWord.startsWith(s)).max(STRING_LENGTH_COMPARATOR);
        }
      }
      return match.isPresent() ? match.get().length() : 0;
    }
docs: Checks whether a <code>word</code> starts with an ignored word.
  Note that a minimum <code>word</code>-length of 4 characters is expected.
  (This is for better performance. Moreover, such short words are most likely contained in the dictionary.)
  @param word - entire word
  @param caseSensitive - determines whether the check is case-sensitive
  @return length of the ignored word (i.e., return value is 0, if the word does not start with an ignored word).
  If there are several matches from the set of ignored words, the length of the longest matching word is returned.
  @since 3.5