docs: def checksuper(sometext, interchange = ALL):
  	"""
  		Checks that some text is superpalindrome. Checking performs case-insensitive
  		
  		:param str sometext:
  		    It is some string that will be checked for superpalindrome as text.
  			
  		    What is the text see at help(palindromus.istext)
  			
  		    The text can be multiline.
  			
  		:keyword dict interchange:
  		    It is dictionary of interchangeable letters
  			
  		:except TypeError:
  		    If the checked text is not a string
  			
  		:return bool:
  	"""
  	def text_by_columns(text, columns):
  		column_idx = 0
  		result_text = ""
  		while column_idx+1 <= columns:
  			for idx in range(columns):
  				result_text += text[idx*columns + column_idx]
  			column_idx += 1
  		return result_text
  	
  	# check invalid data types
  	OnlyStringsCanBeChecked(sometext)
  	
  	if istext(sometext):
  		# get only alphabetic
  		matches = re.findall(r'\w+', sometext)
  		
  		if len(matches):
  			alphabetic = (''.join(matches)).replace('_', '')
  			
  			# get matrix size
  			n = math.sqrt(len(alphabetic))
  			if math.ceil(n) == int(n):
  				n = int(n) # float to integer
  				if checkstring(alphabetic, interchange = interchange):
  					# read by columns
  					alphabetic_by_col = text_by_columns(alphabetic, n)
  					if checkstring(alphabetic_by_col, interchange = interchange):
  						return True
  	# in other cases
  	return False