title: re.DOTALL isn't selecting newline character
body: <p>This is the string I am working with:
  <code>string =</code></p>
  <blockquote>
  <p><code>'\n\n  &lt;!----&gt;&lt;div class=&quot;screen-reader-text&quot; ng-if=&quot;::(ctrl.messageViewModel.isChat || ctrl.messageViewModel.isReply)&quot; role=&quot;heading&quot; aria-level=&quot;5&quot;&gt;\n\n\nADMIN_COMMAND STOP\n\n, reply from YATIN &lt;/div&gt;&lt;!----&gt;\n\n  &lt;!--Chat head--&gt;\n  &lt;div class=&quot;media-left&quot; ng-class=&quot;{ \'hide-media-left\' : ctrl.messageViewModel.editFormVisible }&quot;&gt;\n    &lt;!-- Person icon --&gt;\n    \n    &lt;!----&gt;\n    \n  &lt;/div&gt;\n\n  &lt;div class=&quot;ts-message-thread-body align-item-left&quot; data-tid=&quot;messageThreadBody&quot; ng-class=&quot;{\'has-attachments\': ctrl.messageViewModel.hasAttachments} &quot;&gt;\n    &lt;!--EditMessage--&gt;\n    &lt;!----&gt;\n    &lt;!--EditMessage--&gt;\n    &lt;!----&gt;&lt;div id=&quot;messageBody&quot; class=&quot;message-body message-body-width&quot; ng-if=&quot;!ctrl.messageViewModel.editFormVisible&quot; simple-mouseenter=&quot;!ctrl.isInteropChat &amp;amp;&amp;amp; ctrl.messageReactionsEnabled &amp;amp;&amp;amp; ctrl.showMessageActions($event, this)&quot; ng-mouseleave=&quot;!ctrl.isInteropChat &amp;amp;&amp;amp; ctrl.messageReactionsEnabled &amp;amp;&amp;amp; ctrl.hoverOutMessageBodyHandler($event)&quot;&gt;\n      &lt;!----&gt;&lt;div class=&quot;message-body-top-row padded-content&quot; ng-if=&quot;!ctrl.isHiddenByDlp&quot; ng-class=&quot;{ \'unread-message\': ctrl.messageViewModel.isNewMessage,\n                       \'has-reactions\': ctrl.messageReactionsEnabled &amp;amp;&amp;amp; ctrl.messageViewModel.messageHasReaction}&quot;&gt;\n        &lt;div class=&quot;top-row-text-container&quot; ng-class=&quot;{\'single-line-truncation\': ctrl.messageReactionsEnabled &amp;amp;&amp;amp; ctrl.messageViewModel.isRightRail}&quot;&gt;\n          &lt;!--Name--&gt;\n          &lt;div class=&quot;ts-msg-name app-small-font&quot; data-tid=&quot;threadBodyDisplayName&quot; dir=&quot;auto&quot;&gt;\n      </code> and so on...</p>
  </blockquote>
  <p>The main part of interest is:<code>&gt;\n\n\nADMIN_COMMAND STOP\n\n, reply from</code>(in the ), from which I want to get <code>ADMIN_COMMAND STOP</code></p>
  <p>The <code>ADMIN_COMMAND STOP</code> part can be of any length and can have numbers. Also, there can be several <code>\n</code>s before and after it.</p>
  <p>Other inputs can have:</p>
  <p><code>&gt;\n\n\nADMIN_COMMAND REFRESH\n\n, reply from</code></p>
  <p><code>&gt;0, reply from</code></p>
  <p><code>&gt;\n\n\n\nADMIN_COMMAND STOP\n\n\n, reply from</code></p>
  <p>The output I want to get:</p>
  <p><code>ADMIN_COMMAND STOP</code></p>
  <p><code>ADMIN_COMMAND REFRESH</code></p>
  <p><code>0</code></p>
  <p>I came up with this:</p>
  <p><code>re.findall(&quot;&gt;.*([A-Z 0-9]*).*, reply from&quot;,string,re.DOTALL)</code></p>
  <p>My logic:</p>
  <blockquote>
  <p>Check for one <code>&gt;</code> then, zero or more of any character (including <code>\n</code>) then, find zero or more capital letter/digits and then again check for zero or more of any character (including <code>\n</code>)</p>
  </blockquote>