Seleccionar rango en div contenteditable

tengo uncontenteditable div y algunos párrafos en él.

Aquí está mi código:

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
        <div id="main" contenteditable="true" 
             style="border:solid 1px black; width:300px; height:300px">
            <div>Hello world!</div>
            <div>
                <br>
            </div>
            <div>This is a paragraph</div>
        </div>
    </body>
</html>

Asumiendo, quiero hacer una selección de rango que contendrá la cadena "¡mundo! Esto es"

¿Como hacer eso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta