docs: def etextno(lines):
  	"""Retrieves the id for an etext.
  	Args:
  		lines (iter): The lines of the etext to search.
  	Returns:
  		int: The id of the etext.
  	Raises:
  		ValueError: If no etext id was found.
  	Examples:
  		>>> etextno(['Release Date: March 17, 2004 [EBook #11609]'])
  		11609
  		>>> etextno(['Release Date: July, 2003 [Etext# 4263]'])
  		4263
  		>>> etextno(['Release Date: November 29, 2003 [Eook #10335]'])
  		10335
  		>>> etextno(['December, 1998  [Etext 1576#]'])
  		1576
  		>>> etextno(['Some lines', 'without', 'Any [Etext] Number'])
  		Traceback (most recent call last):
  			...
  		ValueError: no etext-id found
  	"""
  	for line in lines:
  		match = ETEXTRE.search(line)
  		if match is not None:
  			front_match = match.group('etextid_front')
  			back_match = match.group('etextid_back')
  			if front_match is not None:
  				return int(front_match)
  			elif back_match is not None:
  				return int(back_match)
  			else:
  				raise ValueError('no regex match (this should never happen')
  	raise ValueError('no etext-id found')