The validator currently uses separate logic to check the version.  Now that I think about it, I may instead use `sprintf` to insert allowed versions into the regex.

You make a good point regarding the variant field.  `[89ab]` are valid variants per the RFC,  `[0-7]` and `[cd]` are for backwards compatibility, and `[ef]` is reserved for future definition.

> Interoperability, in any form, with variants other than the one defined here is not guaranteed, and is not likely to be an issue in practice.

I guess it comes down to whether this validator should support backwards compatibility.  What are your thoughts on that?

Thanks for your feedback :)