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

Я пытаюсь заменить все между двумя тегами, но я не могу построить правильное выражение.

Это то, что я сделал: /<tag>(.*|\n*)</tag>/

Я хочу, чтобы он захватывал любые символы, включая разрывы строк.

Это пример того, что мне нужно сделать:

  <tag> <div class="feed_title">Some Title</div> <div class="feed_content">Some text</div> </tag> 

Могут ли некоторые из вас рассказать мне, что я делаю неправильно?

Вот ссылка на RegExr и полный пример того, как выглядит контент: http://regexr.com?2t4n1

 '#.#m' 

M означает MULTILINE, это делает точку способной соответствовать новым символам = разрывы строк \ n

РЕДАКТИРОВАТЬ:

поскольку он был исправлен острыми глазами и хорошим мозгом, он, очевидно, «#. + # s»

EDIT2:

Как сказал Майкл Голдштейн, это должно сработать

 $ch = '<tag>\s+<div class="feed_title">Some Title</div>\s+<div class="feed_content">Some text</div>\s+</tag>' preg_match('#<tag>(.+?)</tag>#s',$ch,$match) 

Существует другое решение, без флага s , я думаю:

 preg_match('#<tag>((.|\s)+?)</tag>#',$ch,$match) 

Но это сложнее

,

ИЗМЕНИТЬ 3:

Я думаю, что присутствие \ s в $ ch является бессмыслицей. \ s используется в RE, а не в строках.

Я написал это, потому что думал, что это могут быть пробелы или \ t, которые могут быть до < tag > и в начале других строк

\ t записывается с выходом; это не повод писать \ s также в строке

Возможно, вы хотели это сделать?

 # The ... in this example is your text to match preg_match("#<tag>(.*?)</tag>#s","...",$matches); 

Вот ссылка на статью об извлечении данных XML с использованием регулярных выражений с использованием PHP, в которой есть несколько хороших примеров.