Regular Expressions Java

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExpExample {
  public static void main(String args[]) {
    String fileName = "RETestSource.java";
    String unadornedClassRE = "^\\s*class (\\w+)";
    String doubleIdentifierRE = "\\b(\\w+)\\s+\\1\\b";
    Pattern classPattern = Pattern.compile(unadornedClassRE);
    Pattern doublePattern = Pattern.compile(doubleIdentifierRE);
    Matcher classMatcher, doubleMatcher;
    int lineNumber = 0;
    try {
      BufferedReader br = new BufferedReader(new FileReader(fileName));
      String line;
      while ((line = br.readLine()) != null) {
        lineNumber++;
        classMatcher = classPattern.matcher(line);
        doubleMatcher = doublePattern.matcher(line);
        if (classMatcher.find()) {
          System.out.println("The class [" + classMatcher.group(1)
              + "] is not public");
        }
        while (doubleMatcher.find()) {
          System.out.println("The word \"" + doubleMatcher.group(1)
              + "\" occurs twice at position "
              + doubleMatcher.start() + " on line " + lineNumber);
        }
      }
    } catch (IOException ioe) {
      System.out.println("IOException: " + ioe);
      ioe.printStackTrace();
    }
  }
}