The first rule checks if the URL starts with ICANRide, and if it does skip the next rule (because it’s already in the correct case and nothing needs to be fixed).
So the next rule only fires if the first rule didn’t tell Apache to skip it, i.e. the URL is certainly not starting with ICANRide at this point. So we check if the URL starts with “icanride” (in any case or form --indicated by the [NC] flag-- except for “ICANRide”) and if it does, redirect to ICANRide/<whatever>
You need the first rule to prevent an infinite loop
icanride -> (hey that matches) -> ICANRide -> (hey that matches) -> ICANRide -> (hey that matches) -> ICANRide -> (hey that matches) -> ICANRide -> (hey that matches) -> ICANRide -> (hey that matches) -> ICANRide -> (hey that matches) -> …