def split_fixed_pattern_with_file_name(path):
        """
        Split path into fixed, masked parts and filename
        :param path: e.g
https://repo.example.com/artifactory/libs-cpp-release.snapshot/boost/1.60-pm/*.*.*/vc110/x86/win/boost.*.*.*.tar.gz
        :return:
            _path_fixed: https://repo.example.com/artifactory/libs-cpp-release.snapshot/boost/1.60-pm/
            _path_pattern: *.*.*/vc100/x86/win
            _file_name_pattern: boost.*.*.*.tar.gz
        """
        _first_pattern_pos = path.find('*')
        _path_separator_pos = path.rfind('/', 0, _first_pattern_pos)
        _path_fixed = path[:_path_separator_pos]
        _path_pattern = path[_path_separator_pos + 1:]
        _file_name_pattern_separator_pos = _path_pattern.rfind('/', 0)
        _file_name_pattern = _path_pattern[_file_name_pattern_separator_pos + 1:]

        if _path_pattern.find('*') == -1 or _file_name_pattern_separator_pos == -1:
            _path_pattern = ""
        else:
            _path_pattern = _path_pattern[:_file_name_pattern_separator_pos]

        return _path_fixed, _path_pattern, _file_name_pattern
Split path into fixed, masked parts and filename
        :param path: e.g
https://repo.example.com/artifactory/libs-cpp-release.snapshot/boost/1.60-pm/*.*.*/vc110/x86/win/boost.*.*.*.tar.gz
        :return:
            _path_fixed: https://repo.example.com/artifactory/libs-cpp-release.snapshot/boost/1.60-pm/
            _path_pattern: *.*.*/vc100/x86/win
            _file_name_pattern: boost.*.*.*.tar.gz