code: def _parse_seq_body(line):
      
      line = line.rstrip('*')
      if '{()' in line:
          head, _rest = line.split('{()', 1)
      else:
          # Match parens
          _rest = line.split('{(', 1)[1]
          head, _rest = _rest.split(')', 1)
      if '()}' in _rest:
          molseq, tail = _rest.split('()}', 1)
      else:
          # Match parens
          molseq, _rest = _rest.split('(', 1)
          tail = _rest.split(')}', 1)[0]
      return (head, molseq, tail)
docs: Ex:
  
      {()YVPFARKYRPKFFREVIGQEAPVRILKALNcknpskgepcgereiDRGVFPDVRA-LKLLDQASVYGE()}*
      MENINNI{()----------FKLILVGDGKFFSSSGEIIFNIWDTKFGGLRDGYYRLTYKNEDDM()}*
  
      Or:
  
      {(HY)ELPWVEKYR...
  
      The sequence fragments in parentheses represent N- or C-terminal flanking
      regions that are not part of the alignment block (I think). Most tools don't
      include them, but some do, apparently.