static void scanfile(Scanner input, String filename, Pattern pattern) {
   int numLines = 1;
   while (input.hasNextLine()) {
     String line = input.nextLine();
     boolean matches = pattern.matcher(line).find();
     if (matches && !options.reverse_match) {
       messages.exit_status = messages.EXIT_SUCCESS;
       if (options.filename_only) {
         out.printf(filename + "\n");
         return;
       } else if (options.number_lines) {
         out.printf(numLines + ": " + "%s:%s%n", filename, line);
       } else {
         out.printf("%s:%s%n", filename, line);
       }
     } else if (!matches && options.reverse_match) {
       if (options.number_lines) {
         out.printf(numLines + ": " + "%s:%s%n", filename, line);
       } else {
         out.printf("%s:%s%n", filename, line);
       }
       messages.exit_status = messages.EXIT_SUCCESS;
     }
     numLines++;
   }
 }