1.0.0-alpha < 1.0.0-alpha.1
1.0.0-alpha.1 < 1.0.0-alpha.beta
1.0.0-alpha.beta < 1.0.0-beta
1.0.0-beta < 1.0.0-beta.2
1.0.0-beta.2 < 1.0.0-beta.11
1.0.0-beta.11 < 1.0.0-rc.1
1.0.0-rc.1 < 1.0.0
1.0.0 < 1.0.1
1.0.0 < 1.1.0
1.0.0 < 2.0.0

0.0.0 > 0.0.0-foo
0.0.1 > 0.0.0
1.0.0 > 0.9.9
0.10.0 > 0.9.0
0.99.0 > 0.10.0
2.0.0 > 1.2.3
v0.0.0 > 0.0.0-foo
v0.0.1 > 0.0.0
v1.0.0 > 0.9.9
v0.10.0 > 0.9.0
v0.99.0 > 0.10.0
v2.0.0 > 1.2.3
0.0.0 > v0.0.0-foo
0.0.1 > v0.0.0
1.0.0 > v0.9.9
0.10.0 > v0.9.0
0.99.0 > v0.10.0
2.0.0 > v1.2.3
1.2.3 > 1.2.3-asdf
1.2.3 > 1.2.3-4
1.2.3 > 1.2.3-4-foo
1.2.3-5-foo > 1.2.3-5
1.2.3-5 > 1.2.3-4
1.2.3-5-foo > 1.2.3-5-Foo
3.0.0 > 2.7.2+asdf
1.2.3-a.10 > 1.2.3-a.5
1.2.3-a.b > 1.2.3-a.5
1.2.3-a.b > 1.2.3-a
1.2.3-a.b.c.10.d.5 > 1.2.3-a.b.c.5.d.100
1.2.3-r2 > 1.2.3-r100
1.2.3-r100 > 1.2.3-R2

0.0.0-foo < 0.0.0
0.0.0 < 0.0.1
0.9.9 < 1.0.0
0.9.0 < 0.10.0
0.10.0 < 0.99.0
1.2.3 < 2.0.0
0.0.0-foo < v0.0.0
0.0.0 < v0.0.1
0.9.9 < v1.0.0
0.9.0 < v0.10.0
0.10.0 < v0.99.0
1.2.3 < v2.0.0
v0.0.0-foo < 0.0.0
v0.0.0 < 0.0.1
v0.9.9 < 1.0.0
v0.9.0 < 0.10.0
v0.10.0 < 0.99.0
v1.2.3 < 2.0.0
1.2.3-asdf < 1.2.3
1.2.3-4 < 1.2.3
1.2.3-4-foo < 1.2.3
1.2.3-5 < 1.2.3-5-foo
1.2.3-4 < 1.2.3-5
1.2.3-5-Foo < 1.2.3-5-foo
2.7.2+asdf < 3.0.0
1.2.3-a.5 < 1.2.3-a.10
1.2.3-a.5 < 1.2.3-a.b
1.2.3-a < 1.2.3-a.b
1.2.3-a.b.c.5.d.100 < 1.2.3-a.b.c.10.d.5
1.2.3-r100 < 1.2.3-r2
1.2.3-R2 < 1.2.3-r100

1.2.3 = v1.2.3
1.2.3 = 1.2.3
1.2.3-0 = v1.2.3-0
1.2.3-0 = 1.2.3-0
1.2.3-1 = v1.2.3-1
1.2.3-1 = 1.2.3-1
1.2.3-beta = v1.2.3-beta
1.2.3-beta = 1.2.3-beta
1.2.3-beta+build = 1.2.3-beta+otherbuild
1.2.3+build = 1.2.3+otherbuild
v1.2.3+build = 1.2.3+otherbuild
999999999999999999999999999991 < 999999999999999999999999999999
999999999999999999999999999991.999999999999999999999999999991.999999999999999999999999999991 < 999999999999999999999999999999.999999999999999999999999999991.999999999999999999999999999991

// anything after the first three components in semver is considered
// part of the build string, even if they're made up of just numbers
1.1.3.4.5 = 1.1.3.4.5
