Для начала нужно научиться определять положение в тексте (т.е. позиция в символах) от экранных координат.
Это позволит позиционировать один клик в тексте. Затем, в процессе манипуляции пользователя необходимо записывать все координаты, до которых пользователь дотянулся. Получится некоторая сетка.
Далее, все координаты этой сетки переводятся в символьные координаты. Получается символьная сетка.
По символьной сетке ищется минимальная/максимальная позиции затронутых символов, тем самым получая искомый диапазон символов.
Можно поступить иначе, реализовав алгоритм поиска
выпуклой оболочки для выделенных символов. Это уже должно определяться тем, как искомый диапазон обрабатывается в дальнейшем в программе. Кроме того, в этом случае необходимо еще учитывать символьные координаты границ предложений внутри абзацев, т.е. понимать, где края текста.
Если предполагается, что областей может быть несколько, тогда необходимо дополнительно разработать метрики "отрыва" одной области от другой. Это может быть смещение по вертикали в 2 символа, например, или пауза в 400-500 мс, но это, опять же, определяется моделью использования разрабатываемой системы.