This is the answer (marked the wrong one earlier).
I've actually combined these two and put a "settings" tab together so the case sensitive and insensitive can be used as needed (not my original intent, but could be darn useful). Settings!A2 is Case Sensitive setting (Yes/No), and Settings!B2 is the length
of text to show from the departure point (to make the text reported back more meaningful). What I ended up with is:
Column:
A2: A label to describe what's being compared.
B2: Indicator if the item is optional (informational only for the person using the sheet).
C2: Text 1 (Expected)
D2: Text 2 (Actual)
E2: Overall Pass/Fail: =IF(Settings!$A$2="Yes",IF(EXACT(B2,C2),"Pass","Fail"),IF(B2=C2,"Pass","Fail"))
F2: 1st Fail Point: =IF(Settings!$A$2="Yes", IF(OR(D2="",D2="Pass"),"",LOOKUP(2,1/(1=FIND(LEFT(" "&B2,ROW(INDIRECT("1:"&1+LEN(B2))))," "&C2)),ROW(INDIRECT("1:"&1+LEN(B2))))), IF(OR(D2="",D2="Pass"),"",LOOKUP(2,1/(1=FIND(LEFT(" "&UPPER(B2),ROW(INDIRECT("1:"&1+LEN(B2)))),"
"&UPPER(C2))),ROW(INDIRECT("1:"&1+LEN(B2))))))
G2: Expected Text from Divergence: =IF(OR(D2="", D2="Pass"), "", MID(B2,E2,Settings!$B$2))
H2: Actual Text from Divergence: =IF(OR(D2="", D2="Pass"), "", MID(C2,E2,Settings!$B$2))
I2: Size Comparison: =IF(LEN(B2)=LEN(C2), "", IF(LEN(B2)>LEN(C2), CONCATENATE("Expected Larger by ", LEN(B2)-LEN(C2), " Char(s)"), CONCATENATE("Actual Larger by ", LEN(C2)-LEN(B2), " Char(s)")))
This copies down to other rows easily.
Thanks everyone for your help and input! (Now I'm going to have to go learn about stuff entered as an array....)