Implement a function that, given an input text string, computes the maximum word letter span and returns both (a) the maximum span and (b) the list of words that achieve that span. A word's letter span is the absolute distance between the first and last alphabetic letters in the word using positions a=0..z=25. Capitalization does not matter. Ignore punctuation and non-letter characters when determining the first and last letters. Words that begin and end with the same letter have span 0. The same two boundary letters yield the same span regardless of their order inside the word. Examples: "cab" -> 1, "pat" -> 4, "Float" -> 14, "wood" -> 19, "would" -> 19, "I" -> 0, "pop" -> 0; "can't" and "cannot." both have span 17. Return the maximum span and all words from the text that achieve it (state whether you return original surface forms or normalized forms). Analyze time and space complexity and explain how you handle ties, duplicates, contractions/hyphenations, and texts with no alphabetic words.