文字列を数値扱いで比較するのが闇だからなぁ
正の整数しかないならできんこともないけど

マイナスを考慮するか?
"x=-3" < "x=-2"
"x=+3" > "x=+2"

小数扱いをするか?
"ver3.2" > "ver3.14"
"ver3.2.x" > "ver3.14.x" //これでいいのか?
"ver3.2.1" > "ver3.14.1" //これでいいのか?
"verx.2.1" < "verx.14.1" //これでいいのか?
"p3_2" < "p3_14" //小数扱いはしない

結構のところ数値考慮の比較は複数パターン用意してオプションで切り替えなきゃいけない
どこを数値扱いするかの仕様もどっかに書いとかないといけない

正の整数だけ考慮した比較と辞書順の比較の切り替えすら考え出すと辛いから
結局辞書順しかサポートしたくない