code: protected String transform(String line) {
          ignoreLine.reset(line);
          if(ignoreLine.matches()) {
              return null; 
          }
          extractLine.reset(line);
          if(extractLine.matches()) {
              StringBuffer output = new StringBuffer();
              // TODO: consider if a loop that find()s all is more 
              // generally useful here
              extractLine.appendReplacement(output,outputTemplate);
              return output.toString();
          }
          // no match; possibly error
          logger.warning("line not extracted nor no-op: "+line);
          return null;
      }
docs: Loads next item into lookahead spot, if available. Skips
  lines matching ignoreLine; extracts desired portion of
  lines matching extractLine; informationally reports any
  lines matching neither.
  
  @return whether any item was loaded into next field