import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PatternExample {
	public static void main(String[] args) {
		Pattern pattern = Pattern.compile("a*b");
		String toBeMatched = "aaaaaabbbb";
		Matcher matcher = pattern.matcher(toBeMatched);

		int count = 0;
		while (matcher.find()) {
			System.out.println("Match " + count + ": " + matcher.group());
			count++;
		}
		
		System.out.println("Whole string matches? " + matcher.matches());
		System.out.println("Looking at? " + matcher.lookingAt());
		
		matcher.usePattern(Pattern.compile("a*b*"));
		System.out.println("Whole string matches? " + matcher.matches());
		String newString = matcher.replaceAll("c");
		System.out.println("New string: " + newString);
		
		String str =  "aabbaba";
		System.out.println("Matches? " + str.matches("(a+b*)+"));
	}
}

