code: private Map processEvent(MatchResult result) {
      Map map = new HashMap();
      //group zero is the entire match - process all other groups
      for (int i = 1; i < result.groupCount() + 1; i++) {
        Object key = matchingKeywords.get(i - 1);
        Object value = result.group(i);
        map.put(key, value);
  
      }
      return map;
    }
docs: Convert the match into a map.
  <p>
  Relies on the fact that the matchingKeywords list is in the same
  order as the groups in the regular expression
  
  @param result
  @return map