Add named patterns and {1,2}-style repitition
improved error messages
rename tests