title: String separation in required format, Pythonic way? (with or w/o Regex)
body: <p>I have a string in the format:</p>
  
  <pre><code>t='@abc @def Hello this part is text'
  </code></pre>
  
  <p>I want to get this:</p>
  
  <pre><code>l=["abc", "def"] 
  s='Hello this part is text'
  </code></pre>
  
  <p>I did this:</p>
  
  <pre><code>a=t[t.find(' ',t.rfind('@')):].strip()
  s=t[:t.find(' ',t.rfind('@'))].strip()
  b=a.split('@')
  l=[i.strip() for i in b][1:]
  </code></pre>
  
  <p>It works for the most part, but it fails when the text part has the '@'. 
  Eg, when: </p>
  
  <pre><code>t='@abc @def My email is red@hjk.com'
  </code></pre>
  
  <p>it fails. The @names are there in the beginning and there can be text after @names, which may possibly contain @.</p>
  
  <p>Clearly I can append initally with a space and find out first word without '@'. But that doesn't seem an elegant solution.</p>
  
  <p>What is a pythonic way of solving this?</p>