Configuration wise, other than the fact the one for the VRF is configured under the routing instance, there is no difference.
However, as someone already mentioned, the BGP session under the VRF can only be configured with families such inet unicast, or inet6 unicast, not family inet-vpn for instance. Also the routes installed in inet.0 vs the ones installed in a VRF are advertised differently to other routers.
Consider the topology in the diagram (assume default BGP policies are used)
R2 advertises a route for 10.1/16 to RA. Because the BGP session btween R2 and RA is configured outside any routing instance, the route is installed in inet.0 and can be advertised to other neighbors also with sessions outside the routing instance. Thus the route is sent to R1 and RB, and then RB advertises it to R5. This route is a family inet route (plain IPv4 route) and it advertised as so all the way across.
Now, between RA and RB the BGP session also carries family inet-vpn, to advertise routes from the VRFs. Notice that in the example there are two VRFs configured with their own route target and route-distinguisher (mandatory when you create a routing instance type vrf).
When R3 advertises a route for 16.1/16 to RA, the route is installed in VRF1.inet.0, since the BGP session is configured within that VRF. The route is then advertised to RB (and no other router connected to RA). The route is advertised to B, as a family inet-vpn route, and includes the RD and RT for VRF1. RB uses the route-target to figure out which VRF routing table to place the route on. Once the route is placed on RB's VRF1.inet.0, it can be advertised to R6.
In the same way, when R4 advertises 16.1/16 to RA, the route is installed in VRF2.inet.0 advertised to RB as family inet-vpn, and then advertised from RB to R7.