anchor.diff:          | None -> 0
       findLine offset 1
   
  -let getMatches (fileNames : string list) (patterns : string list) : (string * int * Match) list =                
  -    let rec processPattern (pattern : string) (fileNames : string list) acc =
  -        match fileNames with
  +/// Returns tuple of (filename, linenumber, Match) for all matches against all filesnames for all patterns.
  +let getMatches (filenames : string list) (patterns : string list) : (string * int * Match) list =                
  +    let rec processFiles (pattern : string) (filenames : string list) acc =
  +        match filenames with
           | fileName :: tl ->
               let lineEndings = lineEndingMap fileName
               let fileText = (System.IO.File.ReadAllText fileName)
  
positive.code:         let msg = "Missing @ before string."
          (fileName, lineNumber, regexMatch, parseString, msg) :: acc
      else acc
  
  let substringFoundCondtion (item : (string * int * Match)) (substring : string) acc : (string * int * Match * string * string) list =
      let (fileName, lineNumber, regexMatch) = item
      let parseString = regexMatch.Groups.["parseString"].Value
  
negative.code:         then __SOURCE_DIRECTORY__                                                            // empty path
          elif System.IO.Path.IsPathRooted path   
          then path                                                                            // absolute path
          else __SOURCE_DIRECTORY__ + System.IO.Path.DirectorySeparatorChar.ToString() + path  // relative path
      let toFileList absolutePath =
          if (System.IO.Directory.Exists absolutePath)
          then Array.toList (System.IO.Directory.GetFiles absolutePath)
  