AB[CD]lE ([]=選択範囲 l=キャレット)
を
AB[cd]lE
にして、選択範囲もキャレットも維持したいんだろ。
で、キャレットが選択範囲の左右どちらにあるかで、Sel****で
実現できるかどうか変わると。