Write a function to analyze string patterns, optimizing for both time complexity and memory usage.
For this task, find the longest contiguous substring containing no repeated characters, treating uppercase and lowercase letters as distinct. Return its text, starting index, and length; if multiple substrings tie, return the earliest one.
def analyze_string(s):