Probably a better way, but his is how I've handled that in the past.
I have a dictionary of the names that get whacked out when title casing and substitute the value when has a matching key.
subDict = {
"MCMURRAY ST": "McMurray St",
"MCMURRAY AVE": "McMurray Ave",
"MCINTOSH CT": "McIntosh Ct",
"MCEWAN DR": "McEwan Dr",
"MCPHERSON AVE": "McPherson Ave",
"MCCLELLAN ST": "McClellen St",
"BY-PASS": "Bypass Hwy SR 240",
"O'CONNOR ST":"O'Connor St",
"MCMURRAY": "McMurray",
"MCINTOSH": "McIntosh",
"MCEWAN": "McEwan",
"MCPHERSON": "McPherson",
"MCCLELLAN": "McClellen",
"O'CONNOR":"O'Connor"
}
def FindLabel ( [Street] ):
st = [Street]
label = [Street].title()
if st in subDict.keys():
label = subDict[st]
return label
R_