First thing we need to do is be able to ssh directly to your Pi's command line, to do that you will need to have enabled SSH on the Pi's operating system, this is going to be useful..
Some tests to try:
Does the Pi's networking stack get an IP address when it is connected to the bridged network? - you should check your DHCP server when its on your main network and when it is attached to the bridged network, try pinging the device.
Does any other machine work [using a DHCP address] when on the bridged network?
Can you connect to the Pi when your laptop is on the main network and your Pi is on the bridged network?
Pinging 18.104.22.168 tests IP connectivity, not DNS so try pinging google.com, if that doesn't work then the problem will probably be DNS Name Resolution [it often is, because of the way Debian/Ubuntu are set up with a new install]
Name resolution, for some bizarre reason, Raspbian is not set up to use DNS properly out of the box, there is a 'legacy' [because its been around forever] network configuration file which controls how the Pi [and all other Debian/Ubuntu Linux/Unix systems] does network name resolution. For simple networks it usually works fine as its set up to use mDNS responder, aka Avahi, but on complex networks this breaks, so you need to change the config file. mDNS is based on Apple's Bonjour/Rendezvous invention, for background, read this.. https://en.wikipedia.org/wiki/Bonjour_(software)
We are going to edit the config file on the Pi's micro SD card - the file is /etc/nsswitch.conf
The culprit is the line starting hosts, yours will be
hosts: files mdns4_minimal [NOTFOUND=return] dns
Note the sequence - files - meaning the Pi's local /etc/hosts file - the Pi's IP stack will look there first.
mdns4_minimal - meaning use Multicast DNS, aka Avahi
your file will then have [NOTFOUND=return] then dns
What that means is that normal dns lookups are NEVER performed because dns is AFTER the [NOTFOUND=return] so:
Using a line editor, insert dns before the [NOTFOUND=return] so the line reads like this
hosts: files, mdns4_minimal dns [NOTFOUND=return]
Reboot and then try pinging google.com. I change the connectivity check box on my Octoprint instances to use a name, not an IP address, then it proves DNS is working properly.
This is one link explaining what is going on in a bit more depth..
Windows is different [naturally, because for decades Microsoft never followed RFC's properly, they bought in IP stacks for windows, then finally wrote their own based on the BSD stack] https://epicentras.wordpress.com/2016/06/03/difference-between-ping-and-nslookup-name-resolution/
Somewhere I've got a link to an excellent post on the subject which I will attach, ITS COMPLICATED, but mDNS makes it simple, most of the time...