melky, а вы уверены, что 3-ье задание можно выполнить без флагов?
1-ое и 2-ое задание
nerv_ уже выполнил, так что не вижу смысла их повторять
Вот 4-ое задание
var pat = /<title>([\S\s]+)<\/title>/i ;
var text = '<title>заголовок</title>' ;
text = text.replace(pat, function(a, b) {return '<div>'+b+'</div>'}) ;
alert (text) ;
Этот код работает ток еси в тексте один тег title. Я не думаю, что нужно, где много тегов title, хотя еси именно это нужно, то воть
var pat = /<title>([\S\s]+?)<\/title>/i ;
var text = '<title>заголовок</title> <title>текст</title>' ;
text = text.replace(pat, function(a, b) {return '<div>'+b+'</div>'}) ;
alert (text) ;
5-ое пока не думал