code: public final Matcher matcher( final String absolutePath ) {
          String path = absolutePath;
  
          // Remove all trailing '/' for proper matching ...
          path = path.replaceAll("/+$", "");
  
          // See if the supplied absolute path matches the pattern ...
          final java.util.regex.Matcher matcher = this.matchPattern.matcher(path);
          if (!matcher.matches()) {
              // No match, so return immediately ...
              return new Matcher(matcher, absolutePath, null, null);
          }
  
          // The absolute path does match the pattern, so use the select pattern and try to grab the selected path ...
          final java.util.regex.Matcher selectMatcher = this.selectPattern.matcher(path);
          if (!selectMatcher.matches()) {
              // Nothing can be selected, so return immediately ...
              return new Matcher(matcher, null, null, null);
          }
          // Grab the selected path ...
          String selectedPath = selectMatcher.group(1);
  
          // Remove the trailing '/@property' ...
          selectedPath = selectedPath.replaceAll("/@[^/\\[\\]]+$", "");
  
          return new Matcher(matcher, absolutePath, null, selectedPath);
      }
docs: Obtain a Matcher that can be used to convert the supplied absolute path into an output repository, and output workspace
  name, and output path. Before this method is called, be sure that the workspace for the supplied path also
  {@link #matchesWorkspace(String) matches}.
  
  @param absolutePath the path in the workspace
  @return the matcher; never null