private void parseProxyHosts(String userProvidedNonProxy) {
        // Glue together default non-proxy entries and user-provided.
        String noProxyList = String.join("|", DEFAULT_NON_PROXY_HOSTS, userProvidedNonProxy);
        StringJoiner pattern = new StringJoiner("|");
        String[] split = noProxyList.split("\\|");
        nonProxyHosts.addAll(Arrays.asList(split));
        for (String noProxyElement : split) {
            /*
             * To match with Java-style regex we need to add any/`.` to `*` (i.e. .*)
             */
            if (noProxyElement.startsWith("*") && noProxyElement.endsWith("*")) {
                String toQuote = noProxyElement.substring(1, noProxyElement.length() - 1);
                pattern.add(".*" + determineQuote(toQuote) + ".*");
            }
            else if (noProxyElement.endsWith("*")) {
                // Snip off * at end, replace with .*
                String toQuote = noProxyElement.substring(0, noProxyElement.length() - 1);
                pattern.add(determineQuote(toQuote) + ".*");
            } else if (noProxyElement.startsWith("*")) {
                // Snip off * at start, replace with .*
                String toQuote = noProxyElement.substring(1);
                pattern.add(".*" + determineQuote(toQuote));
            } else {
                pattern.add(determineQuote(noProxyElement));
            }
        }
        this.noProxyRegex = Pattern.compile(pattern.toString());
        LOGGER.debug("Pattern built for noProxy: {0}", noProxyRegex);
    }
Seems it is common to support wildcards at only the start or end of the entry, so we'll do that for
now. If anyone wants wildcard support elsewhere they can ask for it.

We use Pattern.quote to make the rest of the string 'safe'.
gateway/platforms/vertx3/vertx3/src/main/java/io/apiman/gateway/platforms/vertx3/engine/proxy/JavaSysPropsProxySettings.java