Each trunk has only one ring pattern, but you can loop the call out and back in on another trunk. This method will not work on an OBi1xx (tested on Build 2824) because it won't allow looping.
Voice Services -> SP1 Service -> X_InboundCallRoute:
{(Mdistinc1):sp3(fwd@127.0.0.1:5062)},{(Mdistinc2):sp4(fwd@127.0.0.1:5063)},{ph}
Service Providers -> ITSP Profile C SIP -> ProxyServer: 127.0.0.1
Service Providers -> ITSP Profile C SIP -> X_SpoofCallerID: Checked
Voice Services -> SP3 Service -> AuthUserName: anything
Voice Services -> SP3 Service -> X_RegisterEnable: unchecked
Voice Services -> SP3 Service -> X_ServProvProfile: C
Voice Services -> SP3 Service -> X_DefaultRing: 2
Service Providers -> ITSP Profile D SIP -> ProxyServer: 127.0.0.1
Service Providers -> ITSP Profile D SIP -> X_SpoofCallerID: Checked
Voice Services -> SP4 Service -> AuthUserName: anything
Voice Services -> SP4 Service -> X_RegisterEnable: unchecked
Voice Services -> SP4 Service -> X_ServProvProfile: D
Voice Services -> SP4 Service -> X_DefaultRing: 3
User Settings -> User Defined DigitMaps -> Digit Map1
Label: distinc1
DigitMap: (2223334444|2223335555)
User Settings -> User Defined DigitMaps -> Digit Map2
Label: distinc2
DigitMap: (2223336666|2223337777)
Inbound CallerIDs 2223334444 and 2223335555 on SP1 will get the ring pattern from SP3.
CallerIDs 2223336666 and 2223337777 will get the ring pattern from SP4.