def parse_raw_intervals(str_list):
  """Decode serialized CCDS exons.

  Accepts a formatted string of interval coordinates from the CCDS
  row and turns it into a more manageable list of lists with
  (start, end) coordinates for each interval (exon).

  .. code-block:: python

    >>> parse_raw_intervals('[11-18, 25-30, 32-35]')
    [[11, 18], [25, 30], [32, 35]]

  Args:
    str_list (str): A CSV string of (start, end) pairs, wrapped in '[]'

  Returns:
    list: 2D list with the start ``int``, end ``int`` pairs
  """
  # remove the "[]"
  csv_intervals = str_list[1:-1].replace(' ', '')

  # 1. split first into exons coordinates
  # 2. split into start, end and parse int
  intervals = [[int(pos) for pos in item.split('-')]
               for item in csv_intervals.split(',')]

  return intervals