Without case preservation, replacements would tend to break uppercased and titlecased text.
For example, a rule like “analysing -> analyzing” would turn “Analysing results” into “analyzing results”.
The case preservation needs to:
- work in non-Latin scripts
- support accented characters
- not lowercase terms with fixed uppercasing (like SMS or France or McFly)
- Support language-specific uppercasing rules (e.g. Turkish dotless-I and dotted-I)