code: def match_mstring(self, tokens, item, use_bytes=None):
          
          prefix, name, suffix = tokens
          if use_bytes is None:
              if prefix.startswith("b") or suffix.startswith("b"):
                  if prefix.startswith("b") and suffix.startswith("b"):
                      use_bytes = True
                  else:
                      raise CoconutDeferredSyntaxError("string literals and byte literals cannot be added in patterns", self.loc)
          if use_bytes:
              self.add_check("_coconut.isinstance(" + item + ", _coconut.bytes)")
          else:
              self.add_check("_coconut.isinstance(" + item + ", _coconut.str)")
          if prefix is not None:
              self.add_check(item + ".startswith(" + prefix + ")")
          if suffix is not None:
              self.add_check(item + ".endswith(" + suffix + ")")
          if name != wildcard:
              self.add_def(
                  name + " = " + item + "[" +
                  ("" if prefix is None else "_coconut.len(" + prefix + ")") + ":"
                  + ("" if suffix is None else "-_coconut.len(" + suffix + ")") + "]",
              )
docs: Match prefix and suffix string.