Most browsers that support Javascript also support Netscape-style proxy autoconfiguration (PAC) files (I'm not aware of a JavaScript-capable browser released this century that doesn't). PAC files contain JavaScript code that is executed to determine what proxy (if any) to use for each request.
function FindProxyForURL(url, host) {
if (shExpMatch(host, "*.example.com")) {
return "DIRECT";
} else if (shExpMatch(host, "somewhere.else")) {
return "PROXY someproxy:8080";
} else {
return "PROXY default-proxy.example.com:3128";
}
}
To have a single setting for browsers and other applications that don't support Javascript, you'll need a proxy that supports per-URL parent proxies.
Squid is one possibility, it's a caching proxy designed for high loads and with many features. See Squid selects parent depending on requested URL?Squid selects parent depending on requested URL? for examples of how to set up per-URL parent proxies.
Wwwoffle is another possibility. This proxy is strongly oriented towards having an offline cache, and caches more aggressively than is allowed by the HTTP standards, which is a problem with some sites. Parent proxies can be specified per-URL with wildcard patterns (the default configuration files contains commented-out examples).