def lyrics_field_info(data, offset=0):
	"""lyrics_field_info(data, offset=0) -> None or (str, size) or (None, size)

Return information about a single field in a lyrics tag.
There must be at least 8 bytes of data available.
Returns None if this isn't a valid field; otherwise, return (name, size):
   name - a 3-character string; or None if this is the tag length field
   size - the size associated with this field"""
	
	def _ucase(pos): return data[pos] > 64 and data[pos] <= 64+26
	def _val(pos, len):
		ret = 0
		for i in range(pos, pos+len):
			ch = data[i]
			if ch < 48 or ch > 57: return None  # not a digit
			ret = (ret * 10) + (ch - 48)
		return ret
	
	if _ucase(offset) and _ucase(offset+1) and _ucase(offset+2):
		v = _val(offset+3, 5)
		if v is None:
			return None
		else:
			return ( data[offset:offset+3].tostring(), v )
	
	v = _val(offset, 6)
	if v is None:
		return None       # not a lyrics field
	else:
		return (None, v)