Arbitrary ranges

Added support for arbitrary ranges i.e. [0-9A-C] and associated spec.