docs: def parse_string(progression):
      """Return a tuple (roman numeral, accidentals, chord suffix).
  
      Examples:
      >>> parse_string('I')
      ('I', 0, '')
      >>> parse_string('bIM7')
      ('I', -1, 'M7')
      """
      acc = 0
      roman_numeral = ''
      suffix = ''
      i = 0
      for c in progression:
          if c == '#':
              acc += 1
          elif c == 'b':
              acc -= 1
          elif c.upper() == 'I' or c.upper() == 'V':
              roman_numeral += c.upper()
          else:
              break
          i += 1
      suffix = progression[i:]
      return (roman_numeral, acc, suffix)