string.title now respects parentheses and more uppercase exceptions