code: def _peek_unicode(
          self, is_long
      ):  # type: (bool) -> Tuple[Optional[str], Optional[str]]
          
          # we always want to restore after exiting this scope
          with self._state(save_marker=True, restore=True):
              if self._current not in {"u", "U"}:
                  raise self.parse_error(
                      InternalParserError, "_peek_unicode() entered on non-unicode value"
                  )
  
              self.inc()  # Dropping prefix
              self.mark()
  
              if is_long:
                  chars = 8
              else:
                  chars = 4
  
              if not self.inc_n(chars):
                  value, extracted = None, None
              else:
                  extracted = self.extract()
  
                  if extracted[0].lower() == "d" and extracted[1].strip("01234567"):
                      return None, None
  
                  try:
                      value = chr(int(extracted, 16))
                  except ValueError:
                      value = None
  
              return value, extracted
docs: Peeks ahead non-intrusively by cloning then restoring the
          initial state of the parser.
  
          Returns the unicode value is it's a valid one else None.