docs: function parse_RgbExtra(blob, length, rgce, opts) {
  	if(opts.biff < 8) return parsenoop(blob, length);
  	var target = blob.l + length;
  	var o = [];
  	for(var i = 0; i !== rgce.length; ++i) {
  		switch(rgce[i][0]) {
  			case 'PtgArray': /* PtgArray -> PtgExtraArray */
  				rgce[i][1] = parse_PtgExtraArray(blob, 0, opts);
  				o.push(rgce[i][1]);
  				break;
  			case 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */
  				rgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1]);
  				o.push(rgce[i][2]);
  				break;
  			case 'PtgExp': /* PtgExp -> PtgExtraCol */
  				if(opts && opts.biff == 12) {
  					rgce[i][1][1] = blob.read_shift(4);
  					o.push(rgce[i][1]);
  				} break;
  			default: break;
  		}
  	}
  	length = target - blob.l;
  	/* note: this is technically an error but Excel disregards */
  	//if(target !== blob.l && blob.l !== target - length) throw new Error(target + " != " + blob.l);
  	if(length !== 0) o.push(parsenoop(blob, length));
  	return o;
  }