A token that already contains both an upper-case and a lower-case letter is returned as-is, without any case transformation.
Trigger
TitleCaseSingleWord is called on a token containing mixed case (e.g., an already-formatted name fragment).
Enforcement
TitleCase.TitleCaseSingleWord, first conditional check.
Outcome
Token is preserved exactly as supplied.
Source
SAIF.Business.Utilities\TitleCase.vb
BR-UTIL-003 Known all-caps abbreviations stay upper case¶
Field
Value
Statement
If a token (case-insensitively) matches an entry in the curated abbreviation list (organization/degree/state/direction codes such as SAIF, LLC, LLP, MD, JD, NE, NW, OR, CA, WA, etc.), the token is rendered fully upper case.
Trigger
TitleCaseSingleWord on a token whose upper-cased form is a member of UpperCaseWordList.
Token rendered in all upper case (e.g., SAIF, LLC, OR).
Source
SAIF.Business.Utilities\TitleCase.vb
BR-UTIL-004 Known connector words stay lower case¶
Field
Value
Statement
If a token (case-insensitively) matches a small set of connector/filler words (is, in, the, an, of, on, and, de), the token is rendered fully lower case (except where the whole-string first-letter-uppercase rule, BR-UTIL-009, applies).
Trigger
TitleCaseSingleWord on a token whose lower-cased form is a member of LowerCaseWordList.
BR-UTIL-005 Known mixed-case exception words are normalized¶
Field
Value
Statement
If a token (case-insensitively) matches a curated mixed-case exception (PhD, LaCombe), the token is replaced with the exact canonical mixed-case spelling from the list, regardless of the casing supplied by the caller.
Trigger
TitleCaseSingleWord on a token whose lower-cased form matches an entry (lower-cased) in MixedCaseWordList.
Token rendered as the canonical form, e.g., PHD → PhD, lacombe → LaCombe.
Source
SAIF.Business.Utilities\TitleCase.vb
BR-UTIL-006 Ordinal number suffixes are lower-cased¶
Field
Value
Statement
A token consisting of a numeric prefix followed by an ordinal suffix (st, nd, rd, th) is rendered with the number unchanged and the suffix lower-cased (e.g., 52ND → 52nd).
Trigger
TitleCaseSingleWord on a token where HasNumberSuffix returns true (the token splits into a purely numeric part and a recognized ordinal-suffix part).
BR-UTIL-007 Mc O'-style prefixes get a second inner capital¶
Field
Value
Statement
After the primary casing pass, if the resulting token starts with a recognized name prefix (Mc, O'), the remainder of the token after the prefix is separately proper-cased, producing names like McMahon or (in combination with other rules) O'Brien-style capitalization.
Trigger
TitleCaseSingleWord on a token whose (post-primary-casing) value starts with Mc or O'.
Enforcement
TitleCase.TitleCaseSingleWord, MixedCasePrefixList branch (applied after the main upper/lower/mixed/ordinal branch, on the else-path result of word.ToProperCase).
Outcome
Token rendered with an inner capital after the prefix, e.g., MCMAHON → McMahon.
Source
SAIF.Business.Utilities\TitleCase.vb
BR-UTIL-008 Possessive 's suffix is preserved in original case¶
Field
Value
Statement
A trailing 's suffix on a space-delimited word is re-applied verbatim from the source word (not re-derived from the tokenized/title-cased word), so possessive forms like MIKE'S are handled correctly even though the regex tokenizer splits on the apostrophe.
Trigger
Final pass in ToTitleCase over each space-delimited word of the reassembled output, when the word (case-insensitively) ends with 's.
Enforcement
TitleCase.ApplyExactSuffixList, invoked from ToTitleCase after ReassembleString.
Outcome
The longest matching suffix from MixedCaseSuffixList is spliced back onto the word unchanged.
Source
SAIF.Business.Utilities\TitleCase.vb
BR-UTIL-009 First character of output is always forced to upper case¶
Field
Value
Statement
Regardless of what word-level casing rules produced, the very first character of the final ToTitleCase output is always converted to upper case before returning.
Trigger
End of every ToTitleCase call (after tokenization, reassembly, and suffix handling).
Enforcement
TitleCase.ToTitleCase, final Return output.Substring(0, 1).ToUpper & output.Substring(1) statement.
Outcome
The formatted string always begins with an upper-case character, even if the first token would otherwise have been lower-cased (e.g., a leading connector word).