docs: def find_trim_limit(string, options=None):
      """ find_trim_limit(string : str) -> int
  
      >>> find_trim_limit(r'(list #\; #\")')
      14
      >>> find_trim_limit(r'(list ; ")')
      6
      >>> find_trim_limit(r'(list " ;)')
      7
  
      The function attempts to identify upto which point we are supposed to trim
      so that we don't mess with strings or any aligned comments.
  
      It does this by comparing the positions of semicolons and double
      quotes. It doesn't consider the multiline comment marker. If your
      code uses multiline comments(#| ... |#), you'll have to use --no-compact mode
      """
      opts = parse_options(options)
      # Find position of the first unescaped semi colon
      comment_start = re.search(r'([^\\];)|(^;)', string)
      # Find position of the first unescaped double quote
      string_start = re.search(r'([^\\]")|(^")', string)
      # Assign -1 if there's no match
      limit = string_start.end() if string_start else -1
      comment_start = comment_start.end() if comment_start else -1
      if comment_start != -1:
          # If a semi colon is found, include all the whitespace before it to preserve
          # any aligned comments
          comment_start = re.search('[ \t]*;', string).start()
  
      if opts.dialect == 'newlisp':
          # Find out which string type comes first(normal, tag or brace strings)
          brace_string_start = string.find('{')
          tag_string_start = string.find('[text]')
          pos_lst = [limit, brace_string_start, tag_string_start]
          pos_lst = [x for x in pos_lst if x != -1]
          if pos_lst:
              limit = min(pos_lst)
  
      if comment_start != -1 and limit != -1:
          if comment_start < limit:
              # If the semicolon comes before the comma, it means the string has been
              # commented out
              limit = comment_start
      elif comment_start != -1 and limit == -1:
          # If there's a semicolon but no quote, use the semicolon position as the
          # limit
          limit = comment_start
      elif limit == -1:
          # If neither a semicolon nor a double quote has been found, use the length
          # of the string as the limit
          limit = len(string)
      return limit