If I understand the task here, you would like to allow the green subnet to access anything in the entire network (including the blue/purple), while the blue/purple one should not be able to access the green, but should be able to access the internet.
In this case, after you configure the routing (make sure anything can access anything before you start implementing access lists or you will spend time troubleshooting access issue, when in fact the issues are going to be of routing nature) create an access-list on router_b, which would only allow traffic from 192.168.2.0 to 192.168.3.0 if this is a "returning" traffic. Consider this access list below:
access-list 100 permit tcp 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255 established
access-list 100 permit icmp 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255 echo-reply
access-list 100 deny ip 192.168.2.0 0.0.0.255 192.168.3.0 0.0.0.255
access-list 100 permit ip any any
- allows the tcp traffic from
2.0
to 3.0
if the tcp session is established (technically checks for ACK/RST flags, see here for detail or the docs)
- allows the icmp traffic from
2.0
to 3.0
if this is icmp-reply (as opposed to icmp-echo)
- denies any other traffic from
2.0
to 3.0
- allows any other traffic (eg traffic to the Internet)
Please note that this is much trickier to do the same with UDP traffic.