ok i just tested this. and it doesnt work.
It appears that squid will ignore the policy based routing and default to sending traffic out the default gateway.
There are 2 workarounds. 1 requiring squid to be relocated downstream, the second being changing a default gateway.
If you want to, you can logically set up your network such that:
LAN Segments -> Squid proxy -> PFsense firewall. This will force traffic to obey your policy based routes, but if youre doing source PBR, your PBR will break. Which would require you to route based on destination, or by port/protocol.
the second workaround is to go to:
System -> Routing -> Gateways and change your default gateway to one of your vpn providers. This will force traffic that squid intercepts out the VPN of choice. The downside here being if you want to have certain websites route through different VPN providers this breaks as it will force all traffic that squid is proxying out the new default gateway.
Personally i run squid in transparent mode, on http only. My setup has hosts/websites that i DO NOT want to protect through the vpn. If a host matches my host_vpn_bypass rule it gets dropped direct to wan no matter what the destination is. If ANY host matches a destination listed in my url_vpn_bypass then it gets dropped direct out the wan. This would be accomplished with the PBR rules, PLUS adding the aliases in the proxy bypass section of squid under Services -> Squid Proxy Server.
Spelling, phrasing, and added more detail.