code: public static String[] between(final String value, final String start, final String end) {
          validate(value, NULL_STRING_PREDICATE, NULL_STRING_MSG_SUPPLIER);
          validate(start, NULL_STRING_PREDICATE, () -> "'start' should be not null.");
          validate(end, NULL_STRING_PREDICATE, () -> "'end' should be not null.");
  
          String[] parts = value.split(end);
          return Arrays.stream(parts)
                  .filter(subPart -> subPart.contains(start))
                  .map(subPart -> subPart.substring(subPart.indexOf(start) + start.length()))
                  .toArray(String[]::new);
      }
docs: Returns an array with strings between start and end.
  
  @param value input
  @param start start
  @param end   end
  @return Array containing different parts between start and end.