Fixed up the characted classes and other matches so that they are much more strict. Also added in optional(ly) character