docs: def _commonconc(self, suffix=False):
  		'''
  			Find the longest conc which acts as prefix to every conc in this pattern.
  			This could be the empty string. Return the common prefix along with all
  			the leftovers after truncating that common prefix from each conc.
  			"ZA|ZB|ZC" -> "Z", "(A|B|C)"
  			"ZA|ZB|ZC|Z" -> "Z", "(A|B|C|)"
  			"CZ|CZ" -> "CZ", "()"
  
  			If "suffix" is True, the same result but for suffixes.
  		'''
  		if len(self.concs) == 0:
  			raise Exception("Can't call _commonconc on " + repr(self))
  
  		from functools import reduce
  		return reduce(
  			lambda x, y: x.common(y, suffix=suffix),
  			self.concs
  		)