I figured out part of it finally... The laziness had to go somewhere else... (.*\n)* becomes(.*\n)*?
Now I'm left with this: While this now stops the search at the first "transport input ssh" like I wanted, it fails when that first one isn't in there (if the first VTY has "all," but the second has "ssh," the check still passes. Is there a way to have the search not proceed past the next VTY line config line?