So we started with this: 

-bash-4.1$ ls -ld data.txt
-rw-r--r-- 1 dgerman faculty 193 Mar 27 14:56 data.txt
-bash-4.1$ cat data.txt
Albert 7
Go Pacers!
    Blake 9


Albert 2
    Hoo  Hoo  Hoosiers!
      Blake                -2
Adrian 1
   Blake 8

-bash-4.1$ cat Cat.java
import java.io.*;
import java.util.*;
import java.util.regex.*;

class Cat {
  public static void main(String[] args) throws FileNotFoundException {
    // pattern I expect: ^\s*(\w+)\s+(-{0,1}\d+)\s*$
    Pattern p = Pattern.compile("^\\s*(\\w+)\\s+(-{0,1}\\d+)\\s*$");   
    Scanner maggie = new Scanner( new File( args[0] ));
    while (maggie.hasNextLine()) {
      String line = maggie.nextLine();
      Matcher m = p.matcher( line );
      if (m.find()) {
        System.out.println( "Good line: " + line);
        String name = m.group(1);
        String score = m.group(2);
        System.out.println("  Name is: (" + name + ")");
        System.out.println("  Score is: (" + score + ")");
      } else {
        System.out.println( "Bogus line: " + line);
      }
      // System.out.println( line );
    }
  }
}
-bash-4.1$ javac Cat.java
-bash-4.1$ java Cat data.txt
Good line: Albert 7
  Name is: (Albert)
  Score is: (7)
Bogus line: Go Pacers!
Good line:     Blake 9
  Name is: (Blake)
  Score is: (9)
Bogus line:
Bogus line:
Good line: Albert 2
  Name is: (Albert)
  Score is: (2)
Bogus line:     Hoo  Hoo  Hoosiers!
Good line:       Blake                -2
  Name is: (Blake)
  Score is: (-2)
Good line: Adrian 1
  Name is: (Adrian)
  Score is: (1)
Good line:    Blake 8
  Name is: (Blake)
  Score is: (8)
Bogus line:
-bash-4.1$

Next up: