public static List<String> extractFromPropertiesAsList(String prefix, Properties properties) {
        TreeMap<Integer,String> orderedMap = new TreeMap<>();
        List<String> rest = new ArrayList<>();
        Enumeration names = properties.propertyNames();
        String prefixP = prefix + ".";
        while (names.hasMoreElements()) {
            String key = (String) names.nextElement();
            if (propMatchesPrefix(prefixP, key)) {
                String index = key.substring(prefixP.length());

                if(PROPERTY_COMBINE_POLICY_SUFFIX.equals(index)) {
                    continue;
                }

                String value = properties.getProperty(key);
                try {
                    Integer nrIndex = Integer.parseInt(index);
                    orderedMap.put(nrIndex,value);
                } catch (NumberFormatException exp) {
                    rest.add(value);
                }
            }
        }
        List<String> ret = new ArrayList<>(orderedMap.values());
        ret.addAll(rest);
        return ret.size() > 0 ? ret : null;
    }
Extract from given properties a list of string values. The prefix is used to determine the subset of the
given properties from which the list should be extracted, the rest is used as a numeric index. If the rest
is not numeric, the order is not determined (all those props are appended to the end of the list)

NOTE: If suffix/index is "._combine"  it is ignored!
This is reserved for combine policy tweaking.

@param prefix for selecting the properties from which the list should be extracted
@param properties properties from which to extract from
@return parsed list or null if no element with prefixes exists
src/main/java/io/fabric8/maven/docker/util/EnvUtil.java