A regex expression that extracts the components of a semantic version and fails if the version does not conform to the semantic version spec.
Based on the 2.0.0 spec