You can either redeem CPT-SIN or JNB-SIN. You cannot add a standalone CPT-JNB leg because SQ does not have the right to sell this leg. This is not a mixed cabin itinerary because SQ will ticket CPT-SIN as one sector, not two sectors CPT-JNB and JNB-SIN. This is a different situation to something like a two sector trip SIN-FRA-LHR (which would allow mixed cabin itinerary) where you could ticket in J for SIN-FRA and then accept Y for FRA-LHR if J was not available.