code: async def _parse_message_text(self, message, parse_mode):
          
          if parse_mode is ():
              parse_mode = self._parse_mode
          else:
              parse_mode = utils.sanitize_parse_mode(parse_mode)
  
          if not parse_mode:
              return message, []
  
          message, msg_entities = parse_mode.parse(message)
          for i in reversed(range(len(msg_entities))):
              e = msg_entities[i]
              if isinstance(e, types.MessageEntityTextUrl):
                  m = re.match(r'^@|\+|tg://user\?id=(\d+)', e.url)
                  if m:
                      user = int(m.group(1)) if m.group(1) else e.url
                      is_mention = await self._replace_with_mention(msg_entities, i, user)
                      if not is_mention:
                          del msg_entities[i]
              elif isinstance(e, (types.MessageEntityMentionName,
                                  types.InputMessageEntityMentionName)):
                  is_mention = await self._replace_with_mention(msg_entities, i, e.user_id)
                  if not is_mention:
                      del msg_entities[i]
  
          return message, msg_entities
docs: Returns a (parsed message, entities) tuple depending on ``parse_mode``.