Simple method to sort versions
SortBy[
PadRight[#, 3] & @* StringCases[n : DigitCharacter .. :> ToExpression[n]]
] @ versions // Reverse
versions[[Ordering @ - PadRight@ToExpression[Rest /@ StringSplit[versions, "@" | "."]]]]
{"[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]"}
Reverse@SortBy[
versions,
PadRight[ToExpression[
StringSplit[StringDrop[#, StringPosition[#, "@"][[-1, 1]]], "."]],
3] &
]
{"[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]"}