/^
(?'MAJOR'
0|(?:[1-9]\d*)
)
\.
(?'MINOR'
0|(?:[1-9]\d*)
)
\.
(?'PATCH'
0|(?:[1-9]\d*)
)
(?:-(?'prerelease'
(?:0|(?:[1-9A-Za-z-][0-9A-Za-z-]*))
(?:\.
(?:0|(?:[1-9A-Za-z-][0-9A-Za-z-]*))
)*
))?
(?:\+(?'build'
(?:0|(?:[1-9A-Za-z-][0-9A-Za-z-]*))
(?:\.
(?:0|(?:[1-9A-Za-z-][0-9A-Za-z-]*))
)*
))?
$/
^v?(\d+)(\.\d+){0,2}(-[\w\.\+\-]+)?$