"if" alone should default to "if match all", so a logical AND between your various match conditions, while "if match any" is a logical OR. Of course, with only one match condition, it doesn't really matter.
You can experiment all of this (BGP, routing policies, etc) with the VM, on your laptop, without the fear to make a mistake.
I believe everything that is "control plane" related is working just fine with VM, but when it comes to the data plane, not every features has been software-emulated. So you might experience issues with some features while it would work fine on real switches (VPLS is one example). The VMs are free, this is not a product, just a training tool. But a very good one, I use them everyday.
In my experience, BGP and Routing Policies work great.