def split_version(full_name)
      matches = full_name.match(/(.*?)(?:[\.\-\_ ~,]?([0-9].*))?$/)
      if !matches.nil? && matches.length > 1
        [matches[1], matches[2]]
      else
        [full_string, nil]
      end
    end
def split_version(full_name)
      matches = full_name.match(/(.*?)(?:[\.\-\_ ~,]?([0-9].*))?$/)
      if !matches.nil? && matches.length > 1
        [matches[1], matches[2]]
      else
        [full_string, nil]
      end
    end
heuristically splits a full name into an artifact name and version string
 assumes that version strings begin with a numeric character and are separated
 by a ., -, _, ~ or space
 returns a [name, version] pair