I’d say in both cases “0.9” is the version and /alpha-?/ is the priority modifier, so if one is '(0 9 -3) then they both should be. Two other options for dealing with these cases (while keeping “OTP-18.0.5” -> '(18 0 5)) is to just strip the /alpha-?/ and parse those strings as '(0 9) or flag them as invalid version-strings. My ordered preferences are: 1. parse them both as '(0 9 -3) 2. treat them as invalid and throw an error 3. parse them as '(0 9) FWIW, attaching the diff for (1).