code: def get_unicode_property(self, i):
          
  
          index = i.index
          prop = []
          value = []
          try:
              c = next(i)
              if c.upper() in _ASCII_LETTERS:
                  prop.append(c)
              elif c != '{':
                  raise SyntaxError("Unicode property missing '{' at %d!" % (i.index - 1))
              else:
                  c = next(i)
                  if c == '^':
                      prop.append(c)
                      c = next(i)
                  while c not in (':', '=', '}'):
                      if c not in _PROPERTY:
                          raise SyntaxError('Invalid Unicode property character at %d!' % (i.index - 1))
                      if c not in _PROPERTY_STRIP:
                          prop.append(c)
                      c = next(i)
                  if c in (':', '='):
                      c = next(i)
                      while c != '}':
                          if c not in _PROPERTY:
                              raise SyntaxError('Invalid Unicode property character at %d!' % (i.index - 1))
                          if c not in _PROPERTY_STRIP:
                              value.append(c)
                          c = next(i)
                      if not value:
                          raise SyntaxError('Invalid Unicode property!')
          except StopIteration:
              raise SyntaxError("Missing or unmatched '{' at %d!" % index)
  
          return ''.join(prop).lower(), ''.join(value).lower()
docs: Get Unicode property.