http://groovy.codehaus.org/Regular+Expressions
// simple group demo
// You can also match a pattern that includes groups. First create a matcher object,
// either using the Java API, or more simply with the =~ operator. Then, you can index
// the matcher object to find the matches. matcher[0] returns a List representing the
// first match of the regular expression in the string. The first element is the string
// that matches the entire regular expression, and the remaining elements are the strings
// that match each group.
// Here's how it works:
def m = "foobarfoo" =~ /o(b.*r)f/
assert m[0] == ["obarf", "bar"]
assert m[0][1] == "bar"