ок) давай разберем
1. # = ограничители паттерна
2. is = модификаторы.
2.1 i = case insensitive = все равно какой регистр
2.2 s = работа в однострочном режиме (т.е. режутся каретки)
3 ^ = начало строки, а точнее позиция перед началом строки
4 = (.*) = любые символы в любом количестве, кстати говоря, лучше сделать (.*?). подробнее читай в "жадность квантификаторов"
5 <title>(.+)</title> = символы внутри тэга
6 (.*) в конце = остальной код (не проверял, но имхо можно тут не писать)
7 $2 - второй карман замены
в данном случае в первом кармане все до тэга, во втором - содержимое тэга, в третьем - остальной код после тэга
надеюсь понятно написал
п.с. я на твоем месте почитал бы про регулярные выражения. они очень полезны в программировании. я бы сказал, что без них - никуда