I think a regular expression (regex()) may address the issue.
Newcolumn("Found in Version Major",character,nominal,
formula(regex(:Found in Version, ".*?(\d+\.\d+\.\d+).*","\1")
);
".*?(\d+\.\d+\.\d+).*" means find just enough of anything, .*?, followed by a number of any length, \d+, decimal one time, \., a number of any length, \d+, decimal one time, \., a number of any length, \d+, followed by anything. Only return the part in parentheses, the numbers and decimals, \1.
For the minor version, change the regular expression (regex()) to have one more decimal and number.
Newcolumn("Found in Version Minor",character,nominal,
formula(regex(:Found in Version, ".*?(\d+\.\d+\.\d+\.\d+).*","\1")
);