Найти в строке подстроку, которая содержит максимальное количество последовательных символов в этой строке?
Надо двигать концы отрезка: правый R и левый L. Изначально оба на нуле.
Держим текущий набор символов, чтобы проверять на повторы. Помним найденный максимальный отрезок.
Двигаем правый конец на 1. Если символа нет в наборе, добавляем. Если есть, двигаем L вправо за найденный символ. Перед этим проверяем, а не нашли ли мы очередной максимум.
Очень кривая спать-хочу реализация, вроде, работает: IdeoneСтарый ответ, please ignore: Двигаться по одному символу. Помнить найденную макс. длину. Сравнивать символ с предыдущим. 
Равен – длина текущего сегмента растёт.
Не равен – закончился предыдущий сегмент и начался новый. Если длина больше найденного максимума – найден очередной кандидат. Запомнить его длину и начало. Запомнить начало очередного сегмента и считать длину с 1.Итого один раз пройтись. Не надо регулярок.
Никого не слушайте: Это Хаффман.