An ISP, or any site running BGP, can use iBGP. It is simply choosing BGP peers with the same AS number.
There is an interesting rule that you must follow with iBGP: iBGP speakers must be connected in a full mesh (each iBGP speaker in an AS must peer with every other iBGP speaker in the AS). This doesn't mean that they must physically connect, but they must have neighbors defined. The routes to the neighboring interfaces can be from an IGP. The reason is that iBGP routers having learned an iBGP-originated prefix from an iBGP neighbor cannot advertise that iBGP-originated prefix to another iBGP neighbor because that prefix may somehow be advertised back to the originating iBGP router.
There are mitigations for this because you could quickly end up with many iBGP connections. There are route reflectors and confederations that will let you break up the iBGP into more manageable chunks.
In your example, iBGP prefixes originated by R4 could be advertised to R3, but R3 could not advertise those prefixes to R2. This is a loop prevention mechanism. If you are running an IGP*, you could have each router form a neighbor relationship to every other router, which doesn't scale well. Alternatively, you could set up R2 and R3 as route reflectors.
*Many ISPs that are/were telephone companies still use IS-IS instead of OSPF as their IGP. Either will work fine as an IGP.