docs: @SuppressFBWarnings(value = "PZLA", justification = "Null is checked, not empty array. API is clear as well.")
    public String[] match(String value) {
      if (value == null) {
        return null;
      }
      for (int i = 0; i < patterns.length; i++) {
        Matcher matcher = patterns[i].matcher(value);
        if (matcher.matches()) {
          int count = matcher.groupCount();
          String[] groups = new String[count];
          for (int j = 0; j < count; j++) {
            groups[j] = matcher.group(j + 1);
          }
          return groups;
        }
      }
      return null;
    }