Setelah beberapa percobaan dan kesalahan saya datang dengan permintaan berikut yang melakukan apa yang saya butuhkan. Pada dasarnya saya memisahkan nomor dari ujung string dan kemudian menghapus banyak karakter sebelum memisahkan nomor berikutnya. Kolom version1 terbatas pada angka positif 2 digit, tetapi itu adalah batasan yang dapat saya jalani dalam kasus saya.
SELECT
IF(CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),2) AS DECIMAL) > 0,
CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),2) AS DECIMAL),
CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),1) AS DECIMAL)) AS version1,
SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -2)) - 1), '.', -1) as version2,
SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -1)) - 1), '.', -1) as version3,
SUBSTRING_INDEX(version, '.', -1) as version4
FROM Version
HAVING version1 >= 5
;