Поиск, регулярные выражения и замена в строке

Поиск в строке можно осуществить функциями indexOf и search. Разница между ними в том, что search может принимать регулярное выражение. Для примера будем использовать строку
"Session"

   
Простой поиск в строке. indexOf
"Session".indexOf("s")
вернет 2 - позицию первого найденного совпадения.
"Session".indexOf("t")
вернет -1, т.к. не найдет совпадения
"Session".indexOf("S")
вернет 0, т.к. отсчет букв ведется с нуля
"Session".indexOf(/S/)
вернет -1, т.к. не может работать с регулярными выражениями
"Session".indexOf("s", 3)
вернет 3 - позицию первого найденного совпадения, со смещение в 3 символа.
Поиск в строке регулярным выражением. Search
"Session".search("s")
- вернет 2
"Session".search(/s/)
- вернет 2
"Session".search(/s/g)
вернет 2. Но модификатор регулярного выражения g (поиск всех вхождений/глобальный поиск) не сработает, будет возвращено только первое вхождение.   
Замена подстроки. Replace
"Session".replace("s", "t")
вернет "Setsion"
"Session".replace(/s/g, "t")
вернет "Settion"
"Session".replace(/s/i, "t")
вернет "tession"
"Session".replace(/s/ig, "t")
вернет "tettion"
"Session".replace(/(s.*n)/i, "[$1]")
вернет "[Session]" Спасибо за внимание.
Если статья Вам показалась незаконченной или Вы знаете как её улучшить, пожалуйста сообщите мне e@gohtml.ru