[Mlir-commits] [clang] [compiler-rt] [libcxx] [lld] [lldb] [llvm] [mlir] [polly] python: use raw strings for regex (PR #105990)

Paul Zander llvmlistbot at llvm.org
Sun Aug 25 08:53:38 PDT 2024


https://github.com/negril created https://github.com/llvm/llvm-project/pull/105990

Changed in python version 3.12:
  A backslash-character pair that is not a valid escape sequence now generates a
  SyntaxWarning, instead of DeprecationWarning. For example, re.compile("\d+\.
  \d+") now emits a SyntaxWarning ("\d" is an invalid escape sequence, use raw
  strings for regular expression: re.compile(r"\d+\.\d+")). In a future Python
  version, SyntaxError will eventually be raised, instead of SyntaxWarning.
  (Contributed by Victor Stinner in gh-98401.)

Closes: https://github.com/llvm/llvm-project/issues/97815
See-also: https://docs.python.org/3/reference/lexical_analysis.html#escape-sequences

>From e9ffeeaf7a0bf70c58a04315e451ba4553765586 Mon Sep 17 00:00:00 2001
From: Paul Zander <negril.nx+gentoo at gmail.com>
Date: Wed, 21 Aug 2024 15:33:49 +0200
Subject: [PATCH] python: use raw strings for regex

Changed in python version 3.12:
  A backslash-character pair that is not a valid escape sequence now generates a
  SyntaxWarning, instead of DeprecationWarning. For example, re.compile("\d+\.
  \d+") now emits a SyntaxWarning ("\d" is an invalid escape sequence, use raw
  strings for regular expression: re.compile(r"\d+\.\d+")). In a future Python
  version, SyntaxError will eventually be raised, instead of SyntaxWarning.
  (Contributed by Victor Stinner in gh-98401.)

Closes: https://github.com/llvm/llvm-project/issues/97815
See-also: https://docs.python.org/3/reference/lexical_analysis.html#escape-sequences
Signed-off-by: Paul Zander <negril.nx+gentoo at gmail.com>
---
 .github/workflows/version-check.py            |   2 +-
 clang/docs/tools/dump_ast_matchers.py         |   4 +-
 clang/test/Analysis/check-analyzer-fixit.py   |   2 +-
 .../lib/asan/scripts/asan_symbolize.py        |   4 +-
 .../dexter/dex/command/ParseCommand.py        |   4 +-
 cross-project-tests/lit.cfg.py                |   6 +-
 libcxx/utils/synchronize_csv_status_files.py  |   2 +-
 lld/test/MachO/tools/validate-unwind-info.py  |   2 +-
 lld/utils/benchmark.py                        |   2 +-
 lldb/examples/python/crashlog.py              |   8 +-
 lldb/examples/python/delta.py                 |   2 +-
 lldb/examples/python/gdbremote.py             |   6 +-
 lldb/examples/python/jump.py                  |   6 +-
 lldb/examples/python/performance.py           |   2 +-
 lldb/examples/python/symbolication.py         |   6 +-
 .../Python/lldbsuite/test/lldbpexpect.py      |   2 +-
 .../test/test_runner/process_control.py       |   2 +-
 .../command/backticks/TestBackticksInAlias.py |   4 +-
 .../TestMemoryAllocSettings.py                |   2 +-
 .../API/commands/expression/test/TestExprs.py |   2 +-
 .../TestGuiExpandThreadsTree.py               |   2 +-
 lldb/test/API/commands/help/TestHelp.py       |   6 +-
 .../TestLaunchWithShellExpand.py              |   2 +-
 .../register/TestRegistersUnavailable.py      |   4 +-
 .../register_command/TestRegisters.py         |   6 +-
 .../API/commands/settings/TestSettings.py     |  12 +-
 .../target/basic/TestTargetCommand.py         |   2 +-
 .../dwo/TestDumpDwo.py                        |  16 +-
 .../oso/TestDumpOso.py                        |  16 +-
 .../API/commands/trace/TestTraceDumpInfo.py   |   2 +-
 lldb/test/API/commands/trace/TestTraceTSC.py  |  10 +-
 .../driver/quit_speed/TestQuitWithProcess.py  |   2 +-
 .../TestBreakpointByLineAndColumn.py          |   2 +-
 .../TestBreakpointLocations.py                |   2 +-
 .../TestDataFormatterAdv.py                   |   6 +-
 .../TestDataFormatterCpp.py                   |   6 +-
 .../TestDataFormatterObjCNSContainer.py       |  16 +-
 .../TestDataFormatterSkipSummary.py           |   2 +-
 .../TestDataFormatterGenericUnordered.py      |  22 +--
 .../libcxx/atomic/TestLibCxxAtomic.py         |   2 +-
 .../initializerlist/TestInitializerList.py    |   2 +-
 .../TestTypeSummaryListArg.py                 |   4 +-
 .../gdb_remote_client/TestXMLRegisterFlags.py |  10 +-
 .../memory-region/TestMemoryRegion.py         |   2 +-
 .../target_var/TestTargetVar.py               |   2 +-
 .../completion/TestIOHandlerCompletion.py     |   2 +-
 .../API/lang/c/enum_types/TestEnumTypes.py    |   4 +-
 .../c/function_types/TestFunctionTypes.py     |   2 +-
 .../TestRegisterVariables.py                  |   2 +-
 .../API/lang/c/set_values/TestSetValues.py    |   4 +-
 lldb/test/API/lang/c/strings/TestCStrings.py  |   2 +-
 .../API/lang/c/tls_globals/TestTlsGlobals.py  |   8 +-
 .../API/lang/cpp/char1632_t/TestChar1632T.py  |   8 +-
 .../cpp/class_static/TestStaticVariables.py   |   4 +-
 .../lang/cpp/class_types/TestClassTypes.py    |   2 +-
 .../cpp/dynamic-value/TestDynamicValue.py     |   2 +-
 .../API/lang/cpp/namespace/TestNamespace.py   |   4 +-
 .../lang/cpp/signed_types/TestSignedTypes.py  |   4 +-
 .../cpp/unsigned_types/TestUnsignedTypes.py   |   2 +-
 .../test/API/lang/mixed/TestMixedLanguages.py |   4 +-
 .../lang/objc/foundation/TestObjCMethods.py   |   2 +-
 .../objc/foundation/TestObjCMethodsNSArray.py |  10 +-
 .../objc/foundation/TestObjCMethodsNSError.py |   2 +-
 .../objc/foundation/TestObjCMethodsString.py  |  10 +-
 .../TestObjCDynamicValue.py                   |   2 +-
 .../TestObjCBuiltinTypes.py                   |   4 +-
 .../TestAArch64LinuxMTEMemoryTagCoreFile.py   |  44 ++---
 .../TestAArch64LinuxMTEMemoryTagAccess.py     | 170 +++++++++---------
 .../TestAArch64LinuxMTEMemoryTagFaults.py     |   6 +-
 .../TestAArch64LinuxTaggedMemoryRegion.py     |   4 +-
 .../macosx/add-dsym/TestAddDsymDownload.py    |   2 +-
 .../TestFirmwareCorefiles.py                  |   2 +-
 .../kern-ver-str/TestKernVerStrLCNOTE.py      |   2 +-
 .../TestMultipleBinaryCorefile.py             |   2 +-
 .../macosx/simulator/TestSimulatorPlatform.py |   2 +-
 .../skinny-corefile/TestSkinnyCorefile.py     |   2 +-
 .../address_range/TestAddressRange.py         |   6 +-
 .../TestTargetArchFromModule.py               |   2 +-
 .../API/source-manager/TestSourceManager.py   |   2 +-
 .../lldb-server/TestGdbRemoteModuleInfo.py    |   6 +-
 .../API/tools/lldb-server/TestPtyServer.py    |   2 +-
 .../TestGdbRemoteTargetXmlPacket.py           |   2 +-
 lldb/test/API/types/AbstractBase.py           |   6 +-
 lldb/utils/lui/sourcewin.py                   |   2 +-
 llvm/test/CodeGen/NVPTX/wmma.py               |   2 +-
 llvm/tools/opt-viewer/opt-viewer.py           |   2 +-
 llvm/utils/DSAclean.py                        |   2 +-
 llvm/utils/DSAextract.py                      |   4 +-
 llvm/utils/add_argument_names.py              |   2 +-
 llvm/utils/convert-constraint-log-to-z3.py    |   2 +-
 llvm/utils/extract_symbols.py                 |  24 +--
 llvm/utils/extract_vplan.py                   |   2 +-
 llvm/utils/git/github-automation.py           |   6 +-
 llvm/utils/indirect_calls.py                  |   2 +-
 llvm/utils/relative_lines.py                  |   2 +-
 llvm/utils/update_test_prefix.py              |  10 +-
 mlir/utils/spirv/gen_spirv_dialect.py         |  10 +-
 polly/test/update_check.py                    |   4 +-
 98 files changed, 325 insertions(+), 325 deletions(-)

diff --git a/.github/workflows/version-check.py b/.github/workflows/version-check.py
index f75fd50300881b..ed41ef4e1b16b0 100755
--- a/.github/workflows/version-check.py
+++ b/.github/workflows/version-check.py
@@ -6,7 +6,7 @@
 
 
 def get_version_from_tag(tag):
-    m = re.match("llvmorg-([0-9]+)\.([0-9]+)\.([0-9]+)(-rc[0-9]+)?$", tag)
+    m = re.match(r"llvmorg-([0-9]+)\.([0-9]+)\.([0-9]+)(-rc[0-9]+)?$", tag)
     if m:
         if m.lastindex == 4:
             # We have an rc tag.
diff --git a/clang/docs/tools/dump_ast_matchers.py b/clang/docs/tools/dump_ast_matchers.py
index 705ff0d4d40985..90a44dbdf5b573 100755
--- a/clang/docs/tools/dump_ast_matchers.py
+++ b/clang/docs/tools/dump_ast_matchers.py
@@ -101,7 +101,7 @@ def extract_result_types(comment):
 
 
 def strip_doxygen(comment):
-    """Returns the given comment without \-escaped words."""
+    r"""Returns the given comment without \-escaped words."""
     # If there is only a doxygen keyword in the line, delete the whole line.
     comment = re.sub(r"^\\[^\s]+\n", r"", comment, flags=re.M)
 
@@ -236,7 +236,7 @@ def act_on_decl(declaration, comment, allowed_types):
 
         # Parse the various matcher definition macros.
         m = re.match(
-            """.*AST_TYPE(LOC)?_TRAVERSE_MATCHER(?:_DECL)?\(
+            r""".*AST_TYPE(LOC)?_TRAVERSE_MATCHER(?:_DECL)?\(
                        \s*([^\s,]+\s*),
                        \s*(?:[^\s,]+\s*),
                        \s*AST_POLYMORPHIC_SUPPORTED_TYPES\(([^)]*)\)
diff --git a/clang/test/Analysis/check-analyzer-fixit.py b/clang/test/Analysis/check-analyzer-fixit.py
index b616255de89b0c..efed0afc626b95 100644
--- a/clang/test/Analysis/check-analyzer-fixit.py
+++ b/clang/test/Analysis/check-analyzer-fixit.py
@@ -55,7 +55,7 @@ def run_test_once(args, extra_args):
     # themselves.  We need to keep the comments to preserve line numbers while
     # avoiding empty lines which could potentially trigger formatting-related
     # checks.
-    cleaned_test = re.sub("// *CHECK-[A-Z0-9\-]*:[^\r\n]*", "//", input_text)
+    cleaned_test = re.sub(r"// *CHECK-[A-Z0-9\-]*:[^\r\n]*", "//", input_text)
     write_file(temp_file_name, cleaned_test)
 
     original_file_name = temp_file_name + ".orig"
diff --git a/compiler-rt/lib/asan/scripts/asan_symbolize.py b/compiler-rt/lib/asan/scripts/asan_symbolize.py
index b08769614aeb18..058a1614b55e6a 100755
--- a/compiler-rt/lib/asan/scripts/asan_symbolize.py
+++ b/compiler-rt/lib/asan/scripts/asan_symbolize.py
@@ -316,7 +316,7 @@ def symbolize(self, addr, binary, offset):
         #   * For C functions atos omits parentheses and argument types.
         #   * For C++ functions the function name (i.e., `foo` above) may contain
         #     templates which may contain parentheses.
-        match = re.match("^(.*) \(in (.*)\) \((.*:\d*)\)$", atos_line)
+        match = re.match(r"^(.*) \(in (.*)\) \((.*:\d*)\)$", atos_line)
         logging.debug("atos_line: %s", atos_line)
         if match:
             function_name = match.group(1)
@@ -541,7 +541,7 @@ def process_line_posix(self, line):
         # names in the regex because it could be an
         # Objective-C or C++ demangled name.
         stack_trace_line_format = (
-            "^( *#([0-9]+) *)(0x[0-9a-f]+) *(?:in *.+)? *\((.*)\+(0x[0-9a-f]+)\)"
+            r"^( *#([0-9]+) *)(0x[0-9a-f]+) *(?:in *.+)? *\((.*)\+(0x[0-9a-f]+)\)"
         )
         match = re.match(stack_trace_line_format, line)
         if not match:
diff --git a/cross-project-tests/debuginfo-tests/dexter/dex/command/ParseCommand.py b/cross-project-tests/debuginfo-tests/dexter/dex/command/ParseCommand.py
index 29d7867e808673..4fa5db1b503cdc 100644
--- a/cross-project-tests/debuginfo-tests/dexter/dex/command/ParseCommand.py
+++ b/cross-project-tests/debuginfo-tests/dexter/dex/command/ParseCommand.py
@@ -128,7 +128,7 @@ def get_address_object(address_name: str, offset: int = 0):
 
 
 def _search_line_for_cmd_start(line: str, start: int, valid_commands: dict) -> int:
-    """Scan `line` for a string matching any key in `valid_commands`.
+    r"""Scan `line` for a string matching any key in `valid_commands`.
 
     Start searching from `start`.
     Commands escaped with `\` (E.g. `\DexLabel('a')`) are ignored.
@@ -543,7 +543,7 @@ def test_parse_share_line(self):
     def test_parse_escaped(self):
         """Escaped commands are ignored."""
 
-        lines = ['words \MockCmd("IGNORED") words words words\n']
+        lines = [r'words \MockCmd("IGNORED") words words words\n']
 
         values = self._find_all_mock_values_in_lines(lines)
 
diff --git a/cross-project-tests/lit.cfg.py b/cross-project-tests/lit.cfg.py
index 9935fe6a199da8..c24f0f93e656f1 100644
--- a/cross-project-tests/lit.cfg.py
+++ b/cross-project-tests/lit.cfg.py
@@ -223,7 +223,7 @@ def can_target_host():
     xcode_lldb_vers = subprocess.check_output(["xcrun", "lldb", "--version"]).decode(
         "utf-8"
     )
-    match = re.search("lldb-(\d+)", xcode_lldb_vers)
+    match = re.search(r"lldb-(\d+)", xcode_lldb_vers)
     if match:
         apple_lldb_vers = int(match.group(1))
         if apple_lldb_vers < 1000:
@@ -247,7 +247,7 @@ def get_gdb_version_string():
     if len(gdb_vers_lines) < 1:
         print("Unkown GDB version format (too few lines)", file=sys.stderr)
         return None
-    match = re.search("GNU gdb \(.*?\) ((\d|\.)+)", gdb_vers_lines[0].strip())
+    match = re.search(r"GNU gdb \(.*?\) ((\d|\.)+)", gdb_vers_lines[0].strip())
     if match is None:
         print(f"Unkown GDB version format: {gdb_vers_lines[0]}", file=sys.stderr)
         return None
@@ -261,7 +261,7 @@ def get_clang_default_dwarf_version_string(triple):
     # Get the flags passed by the driver and look for -dwarf-version.
     cmd = f'{llvm_config.use_llvm_tool("clang")} -g -xc  -c - -v -### --target={triple}'
     stderr = subprocess.run(cmd.split(), stderr=subprocess.PIPE).stderr.decode()
-    match = re.search("-dwarf-version=(\d+)", stderr)
+    match = re.search(r"-dwarf-version=(\d+)", stderr)
     if match is None:
         print("Cannot determine default dwarf version", file=sys.stderr)
         return None
diff --git a/libcxx/utils/synchronize_csv_status_files.py b/libcxx/utils/synchronize_csv_status_files.py
index 5ff718e5a8f916..26f662b521be87 100755
--- a/libcxx/utils/synchronize_csv_status_files.py
+++ b/libcxx/utils/synchronize_csv_status_files.py
@@ -284,7 +284,7 @@ def sync_csv(rows: List[Tuple], from_github: List[PaperInfo]) -> List[Tuple]:
             results.append(gh.for_printing())
             continue
         elif paper.status != gh.status:
-            print(f"We found a CSV row and a Github issue with different statuses:\nrow: {row}\Github issue: {gh}")
+            print(rf"We found a CSV row and a Github issue with different statuses:\nrow: {row}\Github issue: {gh}")
         results.append(row)
 
     return results
diff --git a/lld/test/MachO/tools/validate-unwind-info.py b/lld/test/MachO/tools/validate-unwind-info.py
index ac49f1ecb58899..1cc82f82792731 100755
--- a/lld/test/MachO/tools/validate-unwind-info.py
+++ b/lld/test/MachO/tools/validate-unwind-info.py
@@ -11,7 +11,7 @@
 
 
 def main():
-    hex = "[a-f\d]"
+    hex = r"[a-f\d]"
     hex8 = hex + "{8}"
 
     parser = argparse.ArgumentParser(description=__doc__)
diff --git a/lld/utils/benchmark.py b/lld/utils/benchmark.py
index a07d5ecc69417c..7202e07ec438d2 100755
--- a/lld/utils/benchmark.py
+++ b/lld/utils/benchmark.py
@@ -51,7 +51,7 @@ def __str__(self):
 def getBenchmarks():
     ret = []
     for i in glob.glob("*/response*.txt"):
-        m = re.match("response-(.*)\.txt", os.path.basename(i))
+        m = re.match(r"response-(.*)\.txt", os.path.basename(i))
         variant = m.groups()[0] if m else None
         ret.append(Bench(os.path.dirname(i), variant))
     return ret
diff --git a/lldb/examples/python/crashlog.py b/lldb/examples/python/crashlog.py
index 368437ed63e46b..bacba1b453fab6 100755
--- a/lldb/examples/python/crashlog.py
+++ b/lldb/examples/python/crashlog.py
@@ -296,7 +296,7 @@ class DarwinImage(symbolication.Image):
             except:
                 dsymForUUIDBinary = ""
 
-        dwarfdump_uuid_regex = re.compile("UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
+        dwarfdump_uuid_regex = re.compile(r"UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
 
         def __init__(
             self, text_addr_lo, text_addr_hi, identifier, version, uuid, path, verbose
@@ -501,7 +501,7 @@ def find_image_with_identifier(self, identifier):
         for image in self.images:
             if image.identifier == identifier:
                 return image
-        regex_text = "^.*\.%s$" % (re.escape(identifier))
+        regex_text = r"^.*\.%s$" % (re.escape(identifier))
         regex = re.compile(regex_text)
         for image in self.images:
             if regex.match(image.identifier):
@@ -925,7 +925,7 @@ def get(cls):
             version = r"(?:" + super().version + r"\s+)?"
             address = r"(0x[0-9a-fA-F]{4,})"  # 4 digits or more
 
-            symbol = """
+            symbol = r"""
                         (?:
                             [ ]+
                             (?P<symbol>.+)
@@ -1095,7 +1095,7 @@ def parse_normal(self, line):
             self.crashlog.process_identifier = line[11:].strip()
         elif line.startswith("Version:"):
             version_string = line[8:].strip()
-            matched_pair = re.search("(.+)\((.+)\)", version_string)
+            matched_pair = re.search(r"(.+)\((.+)\)", version_string)
             if matched_pair:
                 self.crashlog.process_version = matched_pair.group(1)
                 self.crashlog.process_compatability_version = matched_pair.group(2)
diff --git a/lldb/examples/python/delta.py b/lldb/examples/python/delta.py
index eeb3c177cfa901..f847b95ab119f1 100755
--- a/lldb/examples/python/delta.py
+++ b/lldb/examples/python/delta.py
@@ -99,7 +99,7 @@ def parse_log_file(file, options):
     print("# Log file: '%s'" % file)
     print("#----------------------------------------------------------------------")
 
-    timestamp_regex = re.compile("(\s*)([1-9][0-9]+\.[0-9]+)([^0-9].*)$")
+    timestamp_regex = re.compile(r"(\s*)([1-9][0-9]+\.[0-9]+)([^0-9].*)$")
 
     base_time = 0.0
     last_time = 0.0
diff --git a/lldb/examples/python/gdbremote.py b/lldb/examples/python/gdbremote.py
index 40ee15853fdb21..df81353b268c7b 100755
--- a/lldb/examples/python/gdbremote.py
+++ b/lldb/examples/python/gdbremote.py
@@ -1537,13 +1537,13 @@ def parse_gdb_log(file, options):
     a long time during a preset set of debugger commands."""
 
     tricky_commands = ["qRegisterInfo"]
-    timestamp_regex = re.compile("(\s*)([1-9][0-9]+\.[0-9]+)([^0-9].*)$")
+    timestamp_regex = re.compile(r"(\s*)([1-9][0-9]+\.[0-9]+)([^0-9].*)$")
     packet_name_regex = re.compile("([A-Za-z_]+)[^a-z]")
     packet_transmit_name_regex = re.compile(
         "(?P<direction>send|read) packet: (?P<packet>.*)"
     )
-    packet_contents_name_regex = re.compile("\$([^#]*)#[0-9a-fA-F]{2}")
-    packet_checksum_regex = re.compile(".*#[0-9a-fA-F]{2}$")
+    packet_contents_name_regex = re.compile(r"\$([^#]*)#[0-9a-fA-F]{2}")
+    packet_checksum_regex = re.compile(r".*#[0-9a-fA-F]{2}$")
     packet_names_regex_str = "(" + "|".join(gdb_remote_commands.keys()) + ")(.*)"
     packet_names_regex = re.compile(packet_names_regex_str)
 
diff --git a/lldb/examples/python/jump.py b/lldb/examples/python/jump.py
index e086df5fd15282..8d52bd9af43f6d 100644
--- a/lldb/examples/python/jump.py
+++ b/lldb/examples/python/jump.py
@@ -38,7 +38,7 @@ def parse_linespec(linespec, frame, result):
             )
 
     if not matched:
-        mo = re.match("^\+([0-9]+)$", linespec)
+        mo = re.match(r"^\+([0-9]+)$", linespec)
         if mo is not None:
             matched = True
             # print "Matched +<count>"
@@ -54,7 +54,7 @@ def parse_linespec(linespec, frame, result):
             )
 
     if not matched:
-        mo = re.match("^\-([0-9]+)$", linespec)
+        mo = re.match(r"^\-([0-9]+)$", linespec)
         if mo is not None:
             matched = True
             # print "Matched -<count>"
@@ -79,7 +79,7 @@ def parse_linespec(linespec, frame, result):
             breakpoint = target.BreakpointCreateByLocation(file_name, line_number)
 
     if not matched:
-        mo = re.match("\*((0x)?([0-9a-f]+))$", linespec)
+        mo = re.match(r"\*((0x)?([0-9a-f]+))$", linespec)
         if mo is not None:
             matched = True
             # print "Matched <address-expression>"
diff --git a/lldb/examples/python/performance.py b/lldb/examples/python/performance.py
index 869a0b061cf852..b86b5a52522e09 100755
--- a/lldb/examples/python/performance.py
+++ b/lldb/examples/python/performance.py
@@ -346,7 +346,7 @@ def __init__(self, pid):
 
     def Measure(self):
         output = subprocess.getoutput(self.command).split("\n")[-1]
-        values = re.split("[-+\s]+", output)
+        values = re.split(r"[-+\s]+", output)
         for idx, stat in enumerate(values):
             multiplier = 1
             if stat:
diff --git a/lldb/examples/python/symbolication.py b/lldb/examples/python/symbolication.py
index f6dcc8b9a79437..b16745ee963c9f 100755
--- a/lldb/examples/python/symbolication.py
+++ b/lldb/examples/python/symbolication.py
@@ -177,9 +177,9 @@ class Section:
     """Class that represents an load address range"""
 
     sect_info_regex = re.compile("(?P<name>[^=]+)=(?P<range>.*)")
-    addr_regex = re.compile("^\s*(?P<start>0x[0-9A-Fa-f]+)\s*$")
+    addr_regex = re.compile(r"^\s*(?P<start>0x[0-9A-Fa-f]+)\s*$")
     range_regex = re.compile(
-        "^\s*(?P<start>0x[0-9A-Fa-f]+)\s*(?P<op>[-+])\s*(?P<end>0x[0-9A-Fa-f]+)\s*$"
+        r"^\s*(?P<start>0x[0-9A-Fa-f]+)\s*(?P<op>[-+])\s*(?P<end>0x[0-9A-Fa-f]+)\s*$"
     )
 
     def __init__(self, start_addr=None, end_addr=None, name=None):
@@ -557,7 +557,7 @@ def find_images_with_identifier(self, identifier):
             if image.identifier == identifier:
                 images.append(image)
         if len(images) == 0:
-            regex_text = "^.*\.%s$" % (re.escape(identifier))
+            regex_text = r"^.*\.%s$" % (re.escape(identifier))
             regex = re.compile(regex_text)
             for image in self.images:
                 if regex.match(image.identifier):
diff --git a/lldb/packages/Python/lldbsuite/test/lldbpexpect.py b/lldb/packages/Python/lldbsuite/test/lldbpexpect.py
index 998a080565b6b3..4a334fb54b28cc 100644
--- a/lldb/packages/Python/lldbsuite/test/lldbpexpect.py
+++ b/lldb/packages/Python/lldbsuite/test/lldbpexpect.py
@@ -104,4 +104,4 @@ def cursor_forward_escape_seq(self, chars_to_move):
         Returns the escape sequence to move the cursor forward/right
         by a certain amount of characters.
         """
-        return b"\x1b\[" + str(chars_to_move).encode("utf-8") + b"C"
+        return rb"\x1b\[" + str(chars_to_move).encode("utf-8") + b"C"
diff --git a/lldb/packages/Python/lldbsuite/test/test_runner/process_control.py b/lldb/packages/Python/lldbsuite/test/test_runner/process_control.py
index 07c17993bc8786..8ab219a92d99dd 100644
--- a/lldb/packages/Python/lldbsuite/test/test_runner/process_control.py
+++ b/lldb/packages/Python/lldbsuite/test/test_runner/process_control.py
@@ -91,7 +91,7 @@ def timeout_to_seconds(timeout):
 
 
 class ProcessHelper(object):
-    """Provides an interface for accessing process-related functionality.
+    r"""Provides an interface for accessing process-related functionality.
 
     This class provides a factory method that gives the caller a
     platform-specific implementation instance of the class.
diff --git a/lldb/test/API/commands/command/backticks/TestBackticksInAlias.py b/lldb/test/API/commands/command/backticks/TestBackticksInAlias.py
index c31a08ac00182f..2cb8d225d6d07b 100644
--- a/lldb/test/API/commands/command/backticks/TestBackticksInAlias.py
+++ b/lldb/test/API/commands/command/backticks/TestBackticksInAlias.py
@@ -20,7 +20,7 @@ def test_backticks_in_alias(self):
         interp = self.dbg.GetCommandInterpreter()
         result = lldb.SBCommandReturnObject()
         interp.HandleCommand(
-            "command alias _test-argv-cmd expression -Z \`argc\` -- argv", result
+            r"command alias _test-argv-cmd expression -Z \`argc\` -- argv", result
         )
         self.assertCommandReturn(result, "Made the alias")
         interp.HandleCommand("_test-argv-cmd", result)
@@ -28,7 +28,7 @@ def test_backticks_in_alias(self):
 
         # Now try a harder case where we create this using an alias:
         interp.HandleCommand(
-            "command alias _test-argv-parray-cmd parray \`argc\` argv", result
+            r"command alias _test-argv-parray-cmd parray \`argc\` argv", result
         )
         self.assertCommandReturn(result, "Made the alias")
         interp.HandleCommand("_test-argv-parray-cmd", result)
diff --git a/lldb/test/API/commands/expression/memory-allocation/TestMemoryAllocSettings.py b/lldb/test/API/commands/expression/memory-allocation/TestMemoryAllocSettings.py
index d27f07717affb8..a82141a0792f25 100644
--- a/lldb/test/API/commands/expression/memory-allocation/TestMemoryAllocSettings.py
+++ b/lldb/test/API/commands/expression/memory-allocation/TestMemoryAllocSettings.py
@@ -30,7 +30,7 @@ def test(self):
         alloc0 = re.search("^.*IRMemoryMap::Malloc.+?0xdead0000.*$", log, re.MULTILINE)
         # Malloc adds additional bytes to allocation size, hence 10007
         alloc1 = re.search(
-            "^.*IRMemoryMap::Malloc\s*?\(10007.+?0xdead1000.*$", log, re.MULTILINE
+            r"^.*IRMemoryMap::Malloc\s*?\(10007.+?0xdead1000.*$", log, re.MULTILINE
         )
         self.assertTrue(alloc0, "Couldn't find an allocation at a given address.")
         self.assertTrue(
diff --git a/lldb/test/API/commands/expression/test/TestExprs.py b/lldb/test/API/commands/expression/test/TestExprs.py
index 41faf07f8cb44a..17fd952130ee72 100644
--- a/lldb/test/API/commands/expression/test/TestExprs.py
+++ b/lldb/test/API/commands/expression/test/TestExprs.py
@@ -50,7 +50,7 @@ def build_and_run(self):
     def test_floating_point_expr_commands(self):
         self.build_and_run()
 
-        self.expect("expression 2.234f", patterns=["\(float\) \$.* = 2\.234"])
+        self.expect("expression 2.234f", patterns=[r"\(float\) \$.* = 2\.234"])
         # (float) $2 = 2.234
 
     def test_many_expr_commands(self):
diff --git a/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py b/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
index 3bb45521747d82..69aa674f6ae5d0 100644
--- a/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
+++ b/lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
@@ -48,7 +48,7 @@ def test_gui(self):
         self.child.expect_exact("Threads")
 
         # The main thread should be expanded.
-        self.child.expect("#\d+: main")
+        self.child.expect(r"#\d+: main")
 
         # Quit the GUI
         self.child.send(escape_key)
diff --git a/lldb/test/API/commands/help/TestHelp.py b/lldb/test/API/commands/help/TestHelp.py
index f0f5bcb3218011..d9fdb8e7d54ba7 100644
--- a/lldb/test/API/commands/help/TestHelp.py
+++ b/lldb/test/API/commands/help/TestHelp.py
@@ -349,13 +349,13 @@ def test_help_show_tags(self):
         self.expect(
             "help memory read",
             patterns=[
-                "--show-tags\n\s+Include memory tags in output "
-                "\(does not apply to binary output\)."
+                r"--show-tags\n\s+Include memory tags in output "
+                r"\(does not apply to binary output\)."
             ],
         )
         self.expect(
             "help memory find",
-            patterns=["--show-tags\n\s+Include memory tags in output."],
+            patterns=[r"--show-tags\n\s+Include memory tags in output."],
         )
 
     @no_debug_info_test
diff --git a/lldb/test/API/commands/process/launch-with-shellexpand/TestLaunchWithShellExpand.py b/lldb/test/API/commands/process/launch-with-shellexpand/TestLaunchWithShellExpand.py
index fcf61c9775c635..a7f8b38649b22f 100644
--- a/lldb/test/API/commands/process/launch-with-shellexpand/TestLaunchWithShellExpand.py
+++ b/lldb/test/API/commands/process/launch-with-shellexpand/TestLaunchWithShellExpand.py
@@ -93,7 +93,7 @@ def test(self):
 
         self.runCmd("process kill")
 
-        self.runCmd("process launch -X true -w %s -- foo\ bar" % (self.getBuildDir()))
+        self.runCmd(r"process launch -X true -w %s -- foo\ bar" % (self.getBuildDir()))
 
         process = self.process()
 
diff --git a/lldb/test/API/commands/register/register/TestRegistersUnavailable.py b/lldb/test/API/commands/register/register/TestRegistersUnavailable.py
index abd3aeace89695..09c2b26f327652 100644
--- a/lldb/test/API/commands/register/register/TestRegistersUnavailable.py
+++ b/lldb/test/API/commands/register/register/TestRegistersUnavailable.py
@@ -48,12 +48,12 @@ def test_unavailable_registers(self):
             "register read --all",
             patterns=[
                 "(?sm)^general purpose registers:\n"
-                "^\s+rdx = 0x5555555555555555\n"
+                r"^\s+rdx = 0x5555555555555555\n"
                 ".*"
                 "^3 registers were unavailable.\n"
                 "\n"
                 "^supplementary registers:\n"
-                "^\s+edx = 0x55555555\n"
+                r"^\s+edx = 0x55555555\n"
                 ".*"
                 "^12 registers were unavailable."
             ],
diff --git a/lldb/test/API/commands/register/register/register_command/TestRegisters.py b/lldb/test/API/commands/register/register/register_command/TestRegisters.py
index bfd7a382064e9d..0bd6c07644ed15 100644
--- a/lldb/test/API/commands/register/register/register_command/TestRegisters.py
+++ b/lldb/test/API/commands/register/register/register_command/TestRegisters.py
@@ -630,14 +630,14 @@ def test_register_read_fields(self):
         # N/Z/C/V bits will always be present, so check only for those.
         self.expect(
             "register read cpsr",
-            patterns=["= \(N = [0|1], Z = [0|1], C = [0|1], V = [0|1]"],
+            patterns=[r"= \(N = [0|1], Z = [0|1], C = [0|1], V = [0|1]"],
         )
         self.expect(
-            "register read fpsr", patterns=["= \(QC = [0|1], IDC = [0|1], IXC = [0|1]"]
+            "register read fpsr", patterns=[r"= \(QC = [0|1], IDC = [0|1], IXC = [0|1]"]
         )
         # AHP/DN/FZ always present, others may vary.
         self.expect(
-            "register read fpcr", patterns=["= \(AHP = [0|1], DN = [0|1], FZ = [0|1]"]
+            "register read fpcr", patterns=[r"= \(AHP = [0|1], DN = [0|1], FZ = [0|1]"]
         )
 
         # Should get enumerator descriptions for RMode.
diff --git a/lldb/test/API/commands/settings/TestSettings.py b/lldb/test/API/commands/settings/TestSettings.py
index 385acceb7a8b5c..8e02a7cb21b1b0 100644
--- a/lldb/test/API/commands/settings/TestSettings.py
+++ b/lldb/test/API/commands/settings/TestSettings.py
@@ -186,13 +186,13 @@ def cleanup():
         self.addTearDownHook(cleanup)
 
         self.runCmd("settings show frame-format")
-        m = re.match('^frame-format \(format-string\) = "(.*)"$', self.res.GetOutput())
+        m = re.match(r'^frame-format \(format-string\) = "(.*)"$', self.res.GetOutput())
         self.assertTrue(m, "Bad settings string")
         self.format_string = m.group(1)
 
         # Change the default format to print function.name rather than
         # function.name-with-args
-        format_string = "frame #${frame.index}: ${frame.pc}{ ${module.file.basename}\`${function.name}{${function.pc-offset}}}{ at ${line.file.fullpath}:${line.number}}{, lang=${language}}\n"
+        format_string = r"frame #${frame.index}: ${frame.pc}{ ${module.file.basename}\`${function.name}{${function.pc-offset}}}{ at ${line.file.fullpath}:${line.number}}{, lang=${language}}\n"
         self.runCmd("settings set frame-format %s" % format_string)
 
         # Immediately test the setting.
@@ -671,7 +671,7 @@ def test_settings_with_trailing_whitespace(self):
         )
         self.runCmd("settings set target.run-args 1 2 3")  # Set to known value
         # Set to new value with trailing whitespaces
-        self.runCmd("settings set target.run-args 3 \  \ ")
+        self.runCmd(r"settings set target.run-args 3 \  \ ")
         self.expect(
             "settings show target.run-args",
             SETTING_MSG("target.run-args"),
@@ -793,11 +793,11 @@ def test_settings_clear_all(self):
         # Check that settings have their default values after clearing.
         self.expect(
             "settings show target.env-vars",
-            patterns=["^target.env-vars \(dictionary of strings\) =\s*$"],
+            patterns=[r"^target.env-vars \(dictionary of strings\) =\s*$"],
         )
         self.expect(
             "settings show target.run-args",
-            patterns=["^target.run-args \(arguments\) =\s*$"],
+            patterns=[r"^target.run-args \(arguments\) =\s*$"],
         )
         self.expect("settings show auto-confirm", substrs=["false"])
         self.expect("settings show tab-size", substrs=["2"])
@@ -894,7 +894,7 @@ def test_experimental_settings(self):
         # showing & setting an undefined .experimental. setting should generate no errors.
         self.expect(
             "settings show target.experimental.setting-which-does-not-exist",
-            patterns=["^\s$"],
+            patterns=[r"^\s$"],
             error=False,
         )
         self.expect(
diff --git a/lldb/test/API/commands/target/basic/TestTargetCommand.py b/lldb/test/API/commands/target/basic/TestTargetCommand.py
index cb7a5f33f6643e..f7601700d790f6 100644
--- a/lldb/test/API/commands/target/basic/TestTargetCommand.py
+++ b/lldb/test/API/commands/target/basic/TestTargetCommand.py
@@ -74,7 +74,7 @@ def do_target_command(self):
             # Find the largest index of the existing list.
             import re
 
-            pattern = re.compile("target #(\d+):")
+            pattern = re.compile(r"target #(\d+):")
             for line in reversed(output.split(os.linesep)):
                 match = pattern.search(line)
                 if match:
diff --git a/lldb/test/API/commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py b/lldb/test/API/commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py
index 05c72945b14390..13d12e3686a177 100644
--- a/lldb/test/API/commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py
+++ b/lldb/test/API/commands/target/dump-separate-debug-info/dwo/TestDumpDwo.py
@@ -94,11 +94,11 @@ def test_dwos_loaded_table_output(self):
         self.expect(
             "target modules dump separate-debug-info",
             patterns=[
-                "Symbol file: .*?a\.out",
+                r"Symbol file: .*?a\.out",
                 'Type: "dwo"',
-                "Dwo ID\s+Err\s+Dwo Path",
-                "0x[a-zA-Z0-9]{16}\s+.*main\.dwo",
-                "0x[a-zA-Z0-9]{16}\s+.*foo\.dwo",
+                r"Dwo ID\s+Err\s+Dwo Path",
+                r"0x[a-zA-Z0-9]{16}\s+.*main\.dwo",
+                r"0x[a-zA-Z0-9]{16}\s+.*foo\.dwo",
             ],
         )
 
@@ -118,11 +118,11 @@ def test_dwos_not_loaded_table_output(self):
         self.expect(
             "target modules dump separate-debug-info",
             patterns=[
-                "Symbol file: .*?a\.out",
+                r"Symbol file: .*?a\.out",
                 'Type: "dwo"',
-                "Dwo ID\s+Err\s+Dwo Path",
-                "0x[a-zA-Z0-9]{16}\s+E\s+.*main\.dwo",
-                "0x[a-zA-Z0-9]{16}\s+E\s+.*foo\.dwo",
+                r"Dwo ID\s+Err\s+Dwo Path",
+                r"0x[a-zA-Z0-9]{16}\s+E\s+.*main\.dwo",
+                r"0x[a-zA-Z0-9]{16}\s+E\s+.*foo\.dwo",
             ],
         )
 
diff --git a/lldb/test/API/commands/target/dump-separate-debug-info/oso/TestDumpOso.py b/lldb/test/API/commands/target/dump-separate-debug-info/oso/TestDumpOso.py
index 06dc8234591844..4e7560338b1d41 100644
--- a/lldb/test/API/commands/target/dump-separate-debug-info/oso/TestDumpOso.py
+++ b/lldb/test/API/commands/target/dump-separate-debug-info/oso/TestDumpOso.py
@@ -93,11 +93,11 @@ def test_shows_oso_loaded_table_output(self):
         self.expect(
             "target modules dump separate-debug-info",
             patterns=[
-                "Symbol file: .*?a\.out",
+                r"Symbol file: .*?a\.out",
                 'Type: "oso"',
-                "Mod Time\s+Err\s+Oso Path",
-                "0x[a-zA-Z0-9]{16}\s+.*main\.o",
-                "0x[a-zA-Z0-9]{16}\s+.*foo\.o",
+                r"Mod Time\s+Err\s+Oso Path",
+                r"0x[a-zA-Z0-9]{16}\s+.*main\.o",
+                r"0x[a-zA-Z0-9]{16}\s+.*foo\.o",
             ],
         )
 
@@ -119,11 +119,11 @@ def test_shows_oso_not_loaded_table_output(self):
         self.expect(
             "target modules dump separate-debug-info",
             patterns=[
-                "Symbol file: .*?a\.out",
+                r"Symbol file: .*?a\.out",
                 'Type: "oso"',
-                "Mod Time\s+Err\s+Oso Path",
-                "0x[a-zA-Z0-9]{16}\s+E\s+.*main\.o",
-                "0x[a-zA-Z0-9]{16}\s+E\s+.*foo\.o",
+                r"Mod Time\s+Err\s+Oso Path",
+                r"0x[a-zA-Z0-9]{16}\s+E\s+.*main\.o",
+                r"0x[a-zA-Z0-9]{16}\s+E\s+.*foo\.o",
             ],
         )
 
diff --git a/lldb/test/API/commands/trace/TestTraceDumpInfo.py b/lldb/test/API/commands/trace/TestTraceDumpInfo.py
index 3f67475d631ddc..52449631f6aa99 100644
--- a/lldb/test/API/commands/trace/TestTraceDumpInfo.py
+++ b/lldb/test/API/commands/trace/TestTraceDumpInfo.py
@@ -64,7 +64,7 @@ def testDumpRawTraceSize(self):
       hardware disabled tracing: 4
       trace synchronization point: 1""",
             ],
-            patterns=["Decoding instructions: \d.\d\ds"],
+            patterns=[r"Decoding instructions: \d.\d\ds"],
         )
 
     def testDumpRawTraceSizeJSON(self):
diff --git a/lldb/test/API/commands/trace/TestTraceTSC.py b/lldb/test/API/commands/trace/TestTraceTSC.py
index 580cb347dc30a5..4a19065e60c2ba 100644
--- a/lldb/test/API/commands/trace/TestTraceTSC.py
+++ b/lldb/test/API/commands/trace/TestTraceTSC.py
@@ -20,7 +20,7 @@ def testTscPerThread(self):
         self.expect("n")
         self.expect(
             "thread trace dump instructions -t -c 1",
-            patterns=[": \[\d+.\d+ ns\] 0x0000000000400511    movl"],
+            patterns=[r": \[\d+.\d+ ns\] 0x0000000000400511    movl"],
         )
 
     @testSBAPIAndCommands
@@ -43,7 +43,7 @@ def testMultipleTscsPerThread(self):
         self.runCmd("thread trace dump instructions -t --raw --forward")
         id_to_timestamp = {}
         for line in self.res.GetOutput().splitlines():
-            m = re.search("    (.+): \[(.+)\ ns].*", line)
+            m = re.search(r"    (.+): \[(.+)\ ns].*", line)
             if m:
                 id_to_timestamp[int(m.group(1))] = m.group(2)
         self.assertEqual(len(id_to_timestamp), 3)
@@ -69,12 +69,12 @@ def testTscPerProcess(self):
         self.expect("n")
         self.expect(
             "thread trace dump instructions -t -c 1",
-            patterns=[": \[\d+.\d+ ns\] 0x0000000000400511    movl"],
+            patterns=[r": \[\d+.\d+ ns\] 0x0000000000400511    movl"],
         )
 
         self.expect(
             "thread trace dump instructions -t -c 1 --pretty-json",
-            patterns=['''"timestamp_ns": "\d+.\d+"'''],
+            patterns=[r'''"timestamp_ns": "\d+.\d+"'''],
         )
 
     @testSBAPIAndCommands
@@ -91,7 +91,7 @@ def testDumpingAfterTracingWithoutTsc(self):
         self.expect("n")
         self.expect(
             "thread trace dump instructions -t -c 1",
-            patterns=[": \[unavailable\] 0x0000000000400511    movl"],
+            patterns=[r": \[unavailable\] 0x0000000000400511    movl"],
         )
 
         self.expect(
diff --git a/lldb/test/API/driver/quit_speed/TestQuitWithProcess.py b/lldb/test/API/driver/quit_speed/TestQuitWithProcess.py
index 5cfcf5d69fd2a5..2412b295bfb591 100644
--- a/lldb/test/API/driver/quit_speed/TestQuitWithProcess.py
+++ b/lldb/test/API/driver/quit_speed/TestQuitWithProcess.py
@@ -28,7 +28,7 @@ def test_run_quit(self):
         # Launch the process without a TTY so we don't have to interrupt:
         child.sendline("process launch -n")
         print("launched process")
-        child.expect("Process ([\d]*) launched:")
+        child.expect(r"Process ([\d]*) launched:")
         print("Got launch message")
         child.sendline("quit")
         print("sent quit")
diff --git a/lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py b/lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py
index fe99adf4255138..5798c8ffa82203 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py
@@ -60,7 +60,7 @@ def testBreakpointByLineAndColumnNearestCode(self):
 
         for pattern in patterns:
             line = line_number("main.cpp", pattern) + 1
-            column = int(re.search("\(col:([0-9]+)\)", pattern).group(1))
+            column = int(re.search(r"\(col:([0-9]+)\)", pattern).group(1))
             source_loc.append({"line": line, "column": column})
 
         target = self.createTestTarget()
diff --git a/lldb/test/API/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py b/lldb/test/API/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
index d87e6275f7b51e..e0c93e3c18581d 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
@@ -53,7 +53,7 @@ def set_breakpoint(self):
             ],
             patterns=[
                 "where = a.out`func_inlined .+unresolved, hit count = 0",
-                "where = a.out`main .+\[inlined\].+unresolved, hit count = 0",
+                r"where = a.out`main .+\[inlined\].+unresolved, hit count = 0",
             ],
         )
 
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py b/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
index b740689e675380..cc7ac3dda97ccd 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
@@ -104,7 +104,7 @@ def cleanup():
 
         self.runCmd("type summary clear")
 
-        self.runCmd('type summary add --summary-string "${var[0-1]}" -x "int\[[0-9]\]"')
+        self.runCmd(r'type summary add --summary-string "${var[0-1]}" -x "int\[[0-9]\]"')
 
         self.expect("frame variable int_array", substrs=["1,2"])
 
@@ -119,7 +119,7 @@ def cleanup():
 
         self.runCmd("type summary clear")
 
-        self.runCmd('type summary add -c -x "i_am_cool\[[0-9]\]"')
+        self.runCmd(r'type summary add -c -x "i_am_cool\[[0-9]\]"')
         self.runCmd("type summary add -c i_am_cool")
 
         self.expect(
@@ -172,7 +172,7 @@ def cleanup():
         self.runCmd("type summary clear")
 
         self.runCmd(
-            'type summary add --summary-string "${*var[].x[0-3]%hex} is a bitfield on a set of integers" -x "SimpleWithPointers\[[0-9]\]"'
+            r'type summary add --summary-string "${*var[].x[0-3]%hex} is a bitfield on a set of integers" -x "SimpleWithPointers\[[0-9]\]"'
         )
 
         self.expect(
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py b/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
index 6fa15d9e5ee606..370781fd4f5e03 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-cpp/TestDataFormatterCpp.py
@@ -62,7 +62,7 @@ def cleanup():
         self.expect(
             "frame variable",
             patterns=[
-                "\(Speed\) SPILookHex = 0x[0-9a-f]+"  # Speed should look hex-ish now.
+                r"\(Speed\) SPILookHex = 0x[0-9a-f]+"  # Speed should look hex-ish now.
             ],
         )
 
@@ -71,14 +71,14 @@ def cleanup():
             self.expect(
                 "frame variable",
                 patterns=[
-                    "\(SignalMask\) SMILookHex = 0x[0-9a-f]+"  # SignalMask should look hex-ish now.
+                    r"\(SignalMask\) SMILookHex = 0x[0-9a-f]+"  # SignalMask should look hex-ish now.
                 ],
             )
             self.expect(
                 "frame variable",
                 matching=False,
                 patterns=[
-                    "\(Type4\) T4ILookChar = 0x[0-9a-f]+"  # Type4 should NOT look hex-ish now.
+                    r"\(Type4\) T4ILookChar = 0x[0-9a-f]+"  # Type4 should NOT look hex-ish now.
                 ],
             )
 
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
index 4046dc79538a5f..c90a5c61d9c0ba 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
@@ -53,7 +53,7 @@ def nscontainers_data_formatter_commands(self):
         self.expect(
             "frame variable -d run-target *nscfDictionary",
             patterns=[
-                "\(__NSCFDictionary\) \*nscfDictionary =",
+                r"\(__NSCFDictionary\) \*nscfDictionary =",
                 'key = 0x.* @"foo"',
                 'value = 0x.* @"foo"',
                 'key = 0x.* @"bar"',
@@ -68,7 +68,7 @@ def nscontainers_data_formatter_commands(self):
         self.expect(
             "frame variable -d run-target *cfDictionaryRef",
             patterns=[
-                "\(const __CFDictionary\) \*cfDictionaryRef =",
+                r"\(const __CFDictionary\) \*cfDictionaryRef =",
                 'key = 0x.* @"foo"',
                 'value = 0x.* @"foo"',
                 'key = 0x.* @"bar"',
@@ -89,18 +89,18 @@ def nscontainers_data_formatter_commands(self):
         self.expect(
             "frame variable -d run-target *nscfSet",
             patterns=[
-                "\(__NSCFSet\) \*nscfSet =",
-                '\[0\] = 0x.* @".*"',
-                '\[1\] = 0x.* @".*"',
+                r"\(__NSCFSet\) \*nscfSet =",
+                r'\[0\] = 0x.* @".*"',
+                r'\[1\] = 0x.* @".*"',
             ],
         )
 
         self.expect(
             "frame variable -d run-target *cfSetRef",
             patterns=[
-                "\(const __CFSet\) \*cfSetRef =",
-                '\[0\] = 0x.* @".*"',
-                '\[1\] = 0x.* @".*"',
+                r"\(const __CFSet\) \*cfSetRef =",
+                r'\[0\] = 0x.* @".*"',
+                r'\[1\] = 0x.* @".*"',
             ],
         )
 
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py b/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
index aac18e13bf54f2..460de8a4563f0f 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-skip-summary/TestDataFormatterSkipSummary.py
@@ -167,7 +167,7 @@ def cleanup():
             gcc_version_output = system([[lldbutil.which(self.getCompiler()), "-v"]])
             self.trace("my output:", gcc_version_output)
             for line in gcc_version_output.split(os.linesep):
-                m = re.search("\(Apple Inc\. build ([0-9]+)\)", line)
+                m = re.search(r"\(Apple Inc\. build ([0-9]+)\)", line)
                 self.trace("line:", line)
                 if m:
                     gcc_build = int(m.group(1))
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
index 59c24bcead4a4a..59004c25348f48 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/unordered/TestDataFormatterGenericUnordered.py
@@ -83,9 +83,9 @@ def cleanup():
             [
                 "%s::unordered_set" % ns,
                 "size=5 {",
-                "\[\d\] = 5",
-                "\[\d\] = 3",
-                "\[\d\] = 2",
+                r"\[\d\] = 5",
+                r"\[\d\] = 3",
+                r"\[\d\] = 2",
             ],
         )
 
@@ -94,9 +94,9 @@ def cleanup():
             [
                 "%s::unordered_set" % ns,
                 "size=5 {",
-                '\[\d\] = "is"',
-                '\[\d\] = "world"',
-                '\[\d\] = "hello"',
+                r'\[\d\] = "is"',
+                r'\[\d\] = "world"',
+                r'\[\d\] = "hello"',
             ],
         )
 
@@ -105,9 +105,9 @@ def cleanup():
             [
                 "%s::unordered_multiset" % ns,
                 "size=6 {",
-                "(\[\d\] = 3(\\n|.)+){3}",
-                "\[\d\] = 2",
-                "\[\d\] = 1",
+                r"(\[\d\] = 3(\n|.)+){3}",
+                r"\[\d\] = 2",
+                r"\[\d\] = 1",
             ],
         )
 
@@ -116,8 +116,8 @@ def cleanup():
             [
                 "%s::unordered_multiset" % ns,
                 "size=5 {",
-                '(\[\d\] = "is"(\\n|.)+){2}',
-                '(\[\d\] = "world"(\\n|.)+){2}',
+                r'(\[\d\] = "is"(\n|.)+){2}',
+                r'(\[\d\] = "world"(\n|.)+){2}',
             ],
         )
 
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py
index 241226d50df80d..2d1131d99c5f34 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/atomic/TestLibCxxAtomic.py
@@ -31,7 +31,7 @@ def test(self):
         self.runCmd("run", RUN_SUCCEEDED)
 
         lldbutil.skip_if_library_missing(
-            self, self.target(), lldbutil.PrintableRegex("libc\+\+")
+            self, self.target(), lldbutil.PrintableRegex(r"libc\+\+")
         )
 
         # The stop reason of the thread should be breakpoint.
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
index 0919eb3c5dd812..0f2c24baafbdab 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/initializerlist/TestInitializerList.py
@@ -25,7 +25,7 @@ def test(self):
         self.runCmd("run", RUN_SUCCEEDED)
 
         lldbutil.skip_if_library_missing(
-            self, self.target(), lldbutil.PrintableRegex("libc\+\+")
+            self, self.target(), lldbutil.PrintableRegex(r"libc\+\+")
         )
 
         # The stop reason of the thread should be breakpoint.
diff --git a/lldb/test/API/functionalities/data-formatter/type_summary_list_arg/TestTypeSummaryListArg.py b/lldb/test/API/functionalities/data-formatter/type_summary_list_arg/TestTypeSummaryListArg.py
index 0bc34910df7d22..6b883a5bb6c8ff 100644
--- a/lldb/test/API/functionalities/data-formatter/type_summary_list_arg/TestTypeSummaryListArg.py
+++ b/lldb/test/API/functionalities/data-formatter/type_summary_list_arg/TestTypeSummaryListArg.py
@@ -17,7 +17,7 @@ def test_type_summary_list_with_arg(self):
             "type summary list Foo", substrs=["Category: default", "Category: system"]
         )
         self.expect(
-            "type summary list char", substrs=["char ?(\*|\[\])", "char ?\[[0-9]+\]"]
+            "type summary list char", substrs=[r"char ?(\*|\[\])", r"char ?\[[0-9]+\]"]
         )
 
         self.expect("type summary list -w default", substrs=["system"], matching=False)
@@ -28,6 +28,6 @@ def test_type_summary_list_with_arg(self):
         )
         self.expect(
             "type summary list -w system char",
-            substrs=["char ?(\*|\[\])", "char ?\[[0-9]+\]"],
+            substrs=[r"char ?(\*|\[\])", r"char ?\[[0-9]+\]"],
             matching=True,
         )
diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py b/lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py
index 2dbb2b5f5e3a9c..d7849500c378dd 100644
--- a/lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py
+++ b/lldb/test/API/functionalities/gdb_remote_client/TestXMLRegisterFlags.py
@@ -678,7 +678,7 @@ def test_enum_type_not_found(self):
           <reg name="cpsr" regnum="33" bitsize="32" type="cpsr_flags"/>"""
         )
 
-        self.expect("register read cpsr", patterns=["\(E = 1\)$"])
+        self.expect("register read cpsr", patterns=[r"\(E = 1\)$"])
 
     @skipIfXmlSupportMissing
     @skipIfRemote
@@ -701,7 +701,7 @@ def test_enum_duplicated_evalue(self):
         )
 
         self.expect("register info cpsr", patterns=["E: 1 = def, 2 = geh$"])
-        self.expect("register read cpsr", patterns=["\(E = def \| geh\)$"])
+        self.expect("register read cpsr", patterns=[r"\(E = def \| geh\)$"])
 
     @skipIfXmlSupportMissing
     @skipIfRemote
@@ -725,7 +725,7 @@ def test_enum_duplicated(self):
         )
 
         self.expect("register info cpsr", patterns=["E: 1 = def$"])
-        self.expect("register read cpsr", patterns=["\(E = def\)$"])
+        self.expect("register read cpsr", patterns=[r"\(E = def\)$"])
 
     @skipIfXmlSupportMissing
     @skipIfRemote
@@ -1014,7 +1014,7 @@ def test_many_fields_same_enum(self):
 
         self.expect("register info cpsr", patterns=expected_info)
 
-        expected_read = ["\(f2 = valid, f1 = valid\)$"]
+        expected_read = [r"\(f2 = valid, f1 = valid\)$"]
         self.expect("register read x0", patterns=expected_read)
         self.expect("register read cpsr", patterns=expected_read)
 
@@ -1055,4 +1055,4 @@ def test_fields_same_name_different_enum(self):
             ],
         )
 
-        self.expect("register read x0", patterns=["\(foo = foo_1, foo = foo_0\)$"])
+        self.expect("register read x0", patterns=[r"\(foo = foo_1, foo = foo_0\)$"])
diff --git a/lldb/test/API/functionalities/memory-region/TestMemoryRegion.py b/lldb/test/API/functionalities/memory-region/TestMemoryRegion.py
index 577411ebc1037d..50182e72e498c5 100644
--- a/lldb/test/API/functionalities/memory-region/TestMemoryRegion.py
+++ b/lldb/test/API/functionalities/memory-region/TestMemoryRegion.py
@@ -95,7 +95,7 @@ def test_command(self):
         self.assertFalse(result.Succeeded())
         self.assertRegex(
             result.GetError(),
-            "Usage: memory region <address\-expression> \(or \-\-all\)",
+            r"Usage: memory region <address\-expression> \(or \-\-all\)",
         )
 
         # --all should match what repeating the command gives you
diff --git a/lldb/test/API/functionalities/target_var/TestTargetVar.py b/lldb/test/API/functionalities/target_var/TestTargetVar.py
index 54b7b77b6773ce..a891ab1c1ac4d1 100644
--- a/lldb/test/API/functionalities/target_var/TestTargetVar.py
+++ b/lldb/test/API/functionalities/target_var/TestTargetVar.py
@@ -27,7 +27,7 @@ def testTargetVarExpr(self):
         )
         self.expect("target variable i", substrs=["i", "42"])
         self.expect(
-            "target variable var", patterns=["\(incomplete \*\) var = 0[xX](0)*dead"]
+            "target variable var", patterns=[r"\(incomplete \*\) var = 0[xX](0)*dead"]
         )
         self.expect(
             "target variable var[0]",
diff --git a/lldb/test/API/iohandler/completion/TestIOHandlerCompletion.py b/lldb/test/API/iohandler/completion/TestIOHandlerCompletion.py
index b16869b05e7df0..0c788b2cdfee38 100644
--- a/lldb/test/API/iohandler/completion/TestIOHandlerCompletion.py
+++ b/lldb/test/API/iohandler/completion/TestIOHandlerCompletion.py
@@ -55,7 +55,7 @@ def test_completion(self):
         self.child.expect(
             re.compile(
                 b"TestIOHandler(\r"
-                + self.cursor_forward_escape_seq("\d+")
+                + self.cursor_forward_escape_seq(r"\d+")
                 + b")?Completion.py"
             )
         )
diff --git a/lldb/test/API/lang/c/enum_types/TestEnumTypes.py b/lldb/test/API/lang/c/enum_types/TestEnumTypes.py
index 0015c8f4785783..d4bbe9bcfac818 100644
--- a/lldb/test/API/lang/c/enum_types/TestEnumTypes.py
+++ b/lldb/test/API/lang/c/enum_types/TestEnumTypes.py
@@ -27,7 +27,7 @@ def test_command_line(self):
         self.expect("fr var c", DATA_TYPES_DISPLAYED_CORRECTLY, patterns=[" = C$"])
         self.expect("fr var ab", DATA_TYPES_DISPLAYED_CORRECTLY, patterns=[" = AB$"])
         self.expect(
-            "fr var ac", DATA_TYPES_DISPLAYED_CORRECTLY, patterns=[" = A \| C$"]
+            "fr var ac", DATA_TYPES_DISPLAYED_CORRECTLY, patterns=[r" = A \| C$"]
         )
         self.expect("fr var all", DATA_TYPES_DISPLAYED_CORRECTLY, patterns=[" = ALL$"])
         # Test that an enum that doesn't match the heuristic we use in
@@ -39,7 +39,7 @@ def test_command_line(self):
         self.expect(
             "expression (enum bitfield)nonsense",
             DATA_TYPES_DISPLAYED_CORRECTLY,
-            patterns=[" = B \| C \| 0x10$"],
+            patterns=[r" = B \| C \| 0x10$"],
         )
 
         # Break inside the main.
diff --git a/lldb/test/API/lang/c/function_types/TestFunctionTypes.py b/lldb/test/API/lang/c/function_types/TestFunctionTypes.py
index 2f6bb7fc0bb162..6e42cd63573c93 100644
--- a/lldb/test/API/lang/c/function_types/TestFunctionTypes.py
+++ b/lldb/test/API/lang/c/function_types/TestFunctionTypes.py
@@ -54,7 +54,7 @@ def test_pointers(self):
         )
 
         if self.platformIsDarwin():
-            regexps = ["lib.*\.dylib`printf"]
+            regexps = [r"lib.*\.dylib`printf"]
         else:
             regexps = ["printf"]
         self.expect(
diff --git a/lldb/test/API/lang/c/register_variables/TestRegisterVariables.py b/lldb/test/API/lang/c/register_variables/TestRegisterVariables.py
index 0e51d4f7ff4681..bcdd590e00d0a5 100644
--- a/lldb/test/API/lang/c/register_variables/TestRegisterVariables.py
+++ b/lldb/test/API/lang/c/register_variables/TestRegisterVariables.py
@@ -9,7 +9,7 @@
 
 def re_expr_equals(val_type, val):
     # Match ({val_type}) ${sum_digits} = {val}
-    return re.compile(r"\(" + val_type + "\) \$\d+ = " + str(val))
+    return re.compile(r"\(" + val_type + r"\) \$\d+ = " + str(val))
 
 
 class RegisterVariableTestCase(TestBase):
diff --git a/lldb/test/API/lang/c/set_values/TestSetValues.py b/lldb/test/API/lang/c/set_values/TestSetValues.py
index 0d697d6719d5fc..e0813734403a03 100644
--- a/lldb/test/API/lang/c/set_values/TestSetValues.py
+++ b/lldb/test/API/lang/c/set_values/TestSetValues.py
@@ -82,7 +82,7 @@ def test(self):
         self.expect(
             "frame variable --show-types",
             VARIABLES_DISPLAYED_CORRECTLY,
-            patterns=["\((short unsigned int|unsigned short)\) i = 33"],
+            patterns=[r"\((short unsigned int|unsigned short)\) i = 33"],
         )
 
         # Now set variable 'i' and check that it is correctly displayed.
@@ -90,7 +90,7 @@ def test(self):
         self.expect(
             "frame variable --show-types",
             VARIABLES_DISPLAYED_CORRECTLY,
-            patterns=["\((short unsigned int|unsigned short)\) i = 333"],
+            patterns=[r"\((short unsigned int|unsigned short)\) i = 333"],
         )
 
         self.runCmd("continue")
diff --git a/lldb/test/API/lang/c/strings/TestCStrings.py b/lldb/test/API/lang/c/strings/TestCStrings.py
index 159f8a4e4b6646..f11006f7feefee 100644
--- a/lldb/test/API/lang/c/strings/TestCStrings.py
+++ b/lldb/test/API/lang/c/strings/TestCStrings.py
@@ -20,7 +20,7 @@ def test_with_run_command(self):
 
         self.runCmd("process launch", RUN_SUCCEEDED)
 
-        self.expect("expression -- a[2]", patterns=["\((const )?char\) \$0 = 'c'"])
+        self.expect("expression -- a[2]", patterns=[r"\((const )?char\) \$0 = 'c'"])
 
         self.expect("expression -- z[2]", startstr="(const char) $1 = 'x'")
 
diff --git a/lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py b/lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
index 2bffd2eea123a6..56bb25b3f3c3d4 100644
--- a/lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
+++ b/lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
@@ -71,12 +71,12 @@ def test(self):
         self.expect(
             "expr var_static",
             VARIABLES_DISPLAYED_CORRECTLY,
-            patterns=["\(int\) \$.* = 88"],
+            patterns=[r"\(int\) \$.* = 88"],
         )
         self.expect(
             "expr var_shared",
             VARIABLES_DISPLAYED_CORRECTLY,
-            patterns=["\(int\) \$.* = 66"],
+            patterns=[r"\(int\) \$.* = 66"],
         )
 
         # Continue on the main thread
@@ -102,10 +102,10 @@ def test(self):
         self.expect(
             "expr var_static",
             VARIABLES_DISPLAYED_CORRECTLY,
-            patterns=["\(int\) \$.* = 44"],
+            patterns=[r"\(int\) \$.* = 44"],
         )
         self.expect(
             "expr var_shared",
             VARIABLES_DISPLAYED_CORRECTLY,
-            patterns=["\(int\) \$.* = 33"],
+            patterns=[r"\(int\) \$.* = 33"],
         )
diff --git a/lldb/test/API/lang/cpp/char1632_t/TestChar1632T.py b/lldb/test/API/lang/cpp/char1632_t/TestChar1632T.py
index e1cbe0509ae047..e2521d88258bc9 100644
--- a/lldb/test/API/lang/cpp/char1632_t/TestChar1632T.py
+++ b/lldb/test/API/lang/cpp/char1632_t/TestChar1632T.py
@@ -74,8 +74,8 @@ def test(self):
         self.expect(
             "frame variable as16 as32",
             patterns=[
-                "\(char16_t\[[0-9]+\]\) as16 = ",
-                "\(char32_t\[[0-9]+\]\) as32 = ",
+                r"\(char16_t\[[0-9]+\]\) as16 = ",
+                r"\(char32_t\[[0-9]+\]\) as32 = ",
             ],
             substrs=['u"ﺸﺵۻ"', 'U"ЕЙРГЖО"'],
         )
@@ -103,8 +103,8 @@ def test(self):
         self.expect(
             "frame variable as16 as32",
             patterns=[
-                "\(char16_t\[[0-9]+\]\) as16 = ",
-                "\(char32_t\[[0-9]+\]\) as32 = ",
+                r"\(char16_t\[[0-9]+\]\) as16 = ",
+                r"\(char32_t\[[0-9]+\]\) as32 = ",
             ],
             substrs=['"色ハ匂ヘト散リヌルヲ"', '"෴"'],
         )
diff --git a/lldb/test/API/lang/cpp/class_static/TestStaticVariables.py b/lldb/test/API/lang/cpp/class_static/TestStaticVariables.py
index 04678ec018bdf4..41181e468c3082 100644
--- a/lldb/test/API/lang/cpp/class_static/TestStaticVariables.py
+++ b/lldb/test/API/lang/cpp/class_static/TestStaticVariables.py
@@ -38,7 +38,7 @@ def test_with_run_command(self):
         self.expect(
             "target variable A::g_points",
             VARIABLES_DISPLAYED_CORRECTLY,
-            patterns=["\(PointType\[[1-9]*\]\) A::g_points = {"],
+            patterns=[r"\(PointType\[[1-9]*\]\) A::g_points = {"],
         )
         self.expect(
             "target variable g_points",
@@ -76,7 +76,7 @@ def test_with_run_command_complete(self):
             "target variable A::g_points",
             VARIABLES_DISPLAYED_CORRECTLY,
             patterns=[
-                "\(PointType\[[1-9]*\]\) A::g_points = {",
+                r"\(PointType\[[1-9]*\]\) A::g_points = {",
                 "(x = 1, y = 2)",
                 "(x = 11, y = 22)",
             ],
diff --git a/lldb/test/API/lang/cpp/class_types/TestClassTypes.py b/lldb/test/API/lang/cpp/class_types/TestClassTypes.py
index 80781f5d909123..b5d5dd2370781a 100644
--- a/lldb/test/API/lang/cpp/class_types/TestClassTypes.py
+++ b/lldb/test/API/lang/cpp/class_types/TestClassTypes.py
@@ -179,7 +179,7 @@ def test_with_expr_parser(self):
         self.expect(
             "expression this->m_c_int",
             VARIABLES_DISPLAYED_CORRECTLY,
-            patterns=["\(int\) \$[0-9]+ = 66"],
+            patterns=[r"\(int\) \$[0-9]+ = 66"],
         )
 
     def test_with_constructor_name(self):
diff --git a/lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py b/lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
index 60a2590e1559d3..1d5ab15195df82 100644
--- a/lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
+++ b/lldb/test/API/lang/cpp/dynamic-value/TestDynamicValue.py
@@ -129,7 +129,7 @@ def test_get_dynamic_vals(self):
         self.expect(
             "frame var -d run-target --ptr-depth=2 --show-types anotherA.m_client_A",
             "frame var finds its way into a child member",
-            patterns=["\(B \*\)"],
+            patterns=[r"\(B \*\)"],
         )
 
         # Now make sure we also get it right for a reference as well:
diff --git a/lldb/test/API/lang/cpp/namespace/TestNamespace.py b/lldb/test/API/lang/cpp/namespace/TestNamespace.py
index 84891b322180c3..ebb4d64e9e0cfd 100644
--- a/lldb/test/API/lang/cpp/namespace/TestNamespace.py
+++ b/lldb/test/API/lang/cpp/namespace/TestNamespace.py
@@ -231,12 +231,12 @@ def test_with_run_command(self):
 
         self.expect(
             "expression myanonfunc",
-            patterns=["\(anonymous namespace\)::myanonfunc\(int\)"],
+            patterns=[r"\(anonymous namespace\)::myanonfunc\(int\)"],
         )
 
         self.expect(
             "expression variadic_sum",
-            patterns=["\(anonymous namespace\)::variadic_sum\(int, ...\)"],
+            patterns=[r"\(anonymous namespace\)::variadic_sum\(int, ...\)"],
         )
 
         self.expect_expr("::B::Bar b; b.x()", result_type="int", result_value="42")
diff --git a/lldb/test/API/lang/cpp/signed_types/TestSignedTypes.py b/lldb/test/API/lang/cpp/signed_types/TestSignedTypes.py
index a08c2e721328d4..b8c2c236138686 100644
--- a/lldb/test/API/lang/cpp/signed_types/TestSignedTypes.py
+++ b/lldb/test/API/lang/cpp/signed_types/TestSignedTypes.py
@@ -57,8 +57,8 @@ def test(self):
             "frame variable --show-types --no-args",
             VARIABLES_DISPLAYED_CORRECTLY,
             patterns=[
-                "\((short int|short)\) the_signed_short = 99",
-                "\((signed char|char)\) the_signed_char = 'c'",
+                r"\((short int|short)\) the_signed_short = 99",
+                r"\((signed char|char)\) the_signed_char = 'c'",
             ],
             substrs=[
                 "(int) the_signed_int = 99",
diff --git a/lldb/test/API/lang/cpp/unsigned_types/TestUnsignedTypes.py b/lldb/test/API/lang/cpp/unsigned_types/TestUnsignedTypes.py
index ffce9534e05bd9..4796c849666754 100644
--- a/lldb/test/API/lang/cpp/unsigned_types/TestUnsignedTypes.py
+++ b/lldb/test/API/lang/cpp/unsigned_types/TestUnsignedTypes.py
@@ -22,7 +22,7 @@ def test(self):
             "frame variable --show-types --no-args",
             VARIABLES_DISPLAYED_CORRECTLY,
             patterns=[
-                "\((short unsigned int|unsigned short)\) the_unsigned_short = 99"
+                r"\((short unsigned int|unsigned short)\) the_unsigned_short = 99"
             ],
             substrs=[
                 "(unsigned char) the_unsigned_char = 'c'",
diff --git a/lldb/test/API/lang/mixed/TestMixedLanguages.py b/lldb/test/API/lang/mixed/TestMixedLanguages.py
index 8b73254cce4a93..f7d5b7aa097a45 100644
--- a/lldb/test/API/lang/mixed/TestMixedLanguages.py
+++ b/lldb/test/API/lang/mixed/TestMixedLanguages.py
@@ -22,12 +22,12 @@ def cleanup():
 
         self.addTearDownHook(cleanup)
         self.runCmd("settings show frame-format")
-        m = re.match('^frame-format \(format-string\) = "(.*)"$', self.res.GetOutput())
+        m = re.match(r'^frame-format \(format-string\) = "(.*)"$', self.res.GetOutput())
         self.assertTrue(m, "Bad settings string")
         self.format_string = m.group(1)
 
         # Change the default format to print the language.
-        format_string = "frame #${frame.index}: ${frame.pc}{ ${module.file.basename}\`${function.name}{${function.pc-offset}}}{, lang=${language}}\n"
+        format_string = r"frame #${frame.index}: ${frame.pc}{ ${module.file.basename}\`${function.name}{${function.pc-offset}}}{, lang=${language}}\n"
         self.runCmd("settings set frame-format %s" % format_string)
         self.expect(
             "settings show frame-format",
diff --git a/lldb/test/API/lang/objc/foundation/TestObjCMethods.py b/lldb/test/API/lang/objc/foundation/TestObjCMethods.py
index 634e4730c764b7..5fa3f280d33bf5 100644
--- a/lldb/test/API/lang/objc/foundation/TestObjCMethods.py
+++ b/lldb/test/API/lang/objc/foundation/TestObjCMethods.py
@@ -166,7 +166,7 @@ def test_data_type_and_expr(self):
             "frame variable --show-types --scope",
             VARIABLES_DISPLAYED_CORRECTLY,
             substrs=["ARG: (MyString *) self"],
-            patterns=["ARG: \(.*\) _cmd", "(objc_selector *)|(SEL)"],
+            patterns=[r"ARG: \(.*\) _cmd", "(objc_selector *)|(SEL)"],
         )
 
         # rdar://problem/8651752
diff --git a/lldb/test/API/lang/objc/foundation/TestObjCMethodsNSArray.py b/lldb/test/API/lang/objc/foundation/TestObjCMethodsNSArray.py
index 81c409d08364c9..2cd1386289b9ea 100644
--- a/lldb/test/API/lang/objc/foundation/TestObjCMethodsNSArray.py
+++ b/lldb/test/API/lang/objc/foundation/TestObjCMethodsNSArray.py
@@ -19,10 +19,10 @@ def test_NSArray_expr_commands(self):
 
         self.runCmd("thread backtrace")
         self.expect(
-            "expression (int)[nil_mutable_array count]", patterns=["\(int\) \$.* = 0"]
+            "expression (int)[nil_mutable_array count]", patterns=[r"\(int\) \$.* = 0"]
         )
-        self.expect("expression (int)[array1 count]", patterns=["\(int\) \$.* = 3"])
-        self.expect("expression (int)[array2 count]", patterns=["\(int\) \$.* = 3"])
-        self.expect("expression (int)array1.count", patterns=["\(int\) \$.* = 3"])
-        self.expect("expression (int)array2.count", patterns=["\(int\) \$.* = 3"])
+        self.expect("expression (int)[array1 count]", patterns=[r"\(int\) \$.* = 3"])
+        self.expect("expression (int)[array2 count]", patterns=[r"\(int\) \$.* = 3"])
+        self.expect("expression (int)array1.count", patterns=[r"\(int\) \$.* = 3"])
+        self.expect("expression (int)array2.count", patterns=[r"\(int\) \$.* = 3"])
         self.runCmd("process continue")
diff --git a/lldb/test/API/lang/objc/foundation/TestObjCMethodsNSError.py b/lldb/test/API/lang/objc/foundation/TestObjCMethodsNSError.py
index c9e801422b46c8..a14035db5e0572 100644
--- a/lldb/test/API/lang/objc/foundation/TestObjCMethodsNSError.py
+++ b/lldb/test/API/lang/objc/foundation/TestObjCMethodsNSError.py
@@ -20,7 +20,7 @@ def test_runtime_types(self):
 
         # Test_NSString:
         self.runCmd("thread backtrace")
-        self.expect("expression [str length]", patterns=["\(NSUInteger\) \$.* ="])
+        self.expect("expression [str length]", patterns=[r"\(NSUInteger\) \$.* ="])
         self.expect("expression str.length")
         self.expect('expression str = [NSString stringWithCString: "new"]')
         self.expect(
diff --git a/lldb/test/API/lang/objc/foundation/TestObjCMethodsString.py b/lldb/test/API/lang/objc/foundation/TestObjCMethodsString.py
index 4d8c9c960ea596..3e33077b8e2d77 100644
--- a/lldb/test/API/lang/objc/foundation/TestObjCMethodsString.py
+++ b/lldb/test/API/lang/objc/foundation/TestObjCMethodsString.py
@@ -21,11 +21,11 @@ def test_NSString_expr_commands(self):
 
         # Test_NSString:
         self.runCmd("thread backtrace")
-        self.expect("expression (int)[str length]", patterns=["\(int\) \$.* ="])
-        self.expect("expression (int)[str_id length]", patterns=["\(int\) \$.* ="])
-        self.expect("expression (id)[str description]", patterns=["\(id\) \$.* = 0x"])
+        self.expect("expression (int)[str length]", patterns=[r"\(int\) \$.* ="])
+        self.expect("expression (int)[str_id length]", patterns=[r"\(int\) \$.* ="])
+        self.expect("expression (id)[str description]", patterns=[r"\(id\) \$.* = 0x"])
         self.expect(
-            "expression (id)[str_id description]", patterns=["\(id\) \$.* = 0x"]
+            "expression (id)[str_id description]", patterns=[r"\(id\) \$.* = 0x"]
         )
         self.expect("expression str.length")
         self.expect('expression str = @"new"')
@@ -42,6 +42,6 @@ def test_MyString_dump_with_runtime(self):
         )
         self.expect(
             "expression --show-types -- *my",
-            patterns=["\(MyString\) \$.* = ", "\(MyBase\)"],
+            patterns=[r"\(MyString\) \$.* = ", r"\(MyBase\)"],
         )
         self.runCmd("process continue")
diff --git a/lldb/test/API/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py b/lldb/test/API/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
index 3ba68f4c35a5c8..4d439fa0046e47 100644
--- a/lldb/test/API/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
+++ b/lldb/test/API/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py
@@ -107,7 +107,7 @@ def test_get_objc_dynamic_vals(self):
         self.expect(
             "frame var -d run-target myObserver->_source",
             "frame var finds its way into a child member",
-            patterns=["\(SourceDerived \*\)"],
+            patterns=[r"\(SourceDerived \*\)"],
         )
 
         # check that our ObjC GetISA() does a good job at hiding KVO swizzled
diff --git a/lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py b/lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py
index 3cdca31b8969bd..ac107de7e00a7d 100644
--- a/lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py
+++ b/lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py
@@ -51,11 +51,11 @@ def test_with_python_api(self):
         frame = thread_list[0].GetFrameAtIndex(0)
         self.assertTrue(frame, "Got a valid frame 0 frame.")
 
-        self.expect("expr (foo)", patterns=["\(ns::id\) \$.* = 0"])
+        self.expect("expr (foo)", patterns=[r"\(ns::id\) \$.* = 0"])
 
         self.expect(
             "expr --language Objective-C++ -- id my_id = 0; my_id",
-            patterns=["\(id\) \$.* = nil"],
+            patterns=[r"\(id\) \$.* = nil"],
         )
         self.expect("expr --language C++ -- id my_id = 0; my_id", error=True)
 
diff --git a/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py b/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py
index 0667759a341b83..9b125fea49d0ba 100644
--- a/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py
+++ b/lldb/test/API/linux/aarch64/mte_core_file/TestAArch64LinuxMTEMemoryTagCoreFile.py
@@ -89,9 +89,9 @@ def test_mte_tag_core_file_tag_read(self):
             "memory tag read {addr}+16 {addr}".format(addr=self.MTE_BUF_ADDR),
             error=True,
             patterns=[
-                "error: End address \(0x[A-Fa-f0-9]+\) "
+                r"error: End address \(0x[A-Fa-f0-9]+\) "
                 "must be greater than the start address "
-                "\(0x[A-Fa-f0-9]+\)"
+                r"\(0x[A-Fa-f0-9]+\)"
             ],
         )
 
@@ -101,8 +101,8 @@ def test_mte_tag_core_file_tag_read(self):
             "memory tag read {addr} {addr}+32".format(addr=self.MTE_BUF_ADDR),
             patterns=[
                 "Allocation tags:\n"
-                "\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0\n"
-                "\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)$"
+                r"\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0\n"
+                r"\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)$"
             ],
         )
 
@@ -111,7 +111,7 @@ def test_mte_tag_core_file_tag_read(self):
         self.expect(
             "memory tag read {addr} {addr}+16".format(addr=self.MTE_BUF_ADDR),
             patterns=[
-                "Allocation tags:\n" "\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0$"
+                "Allocation tags:\n" r"\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0$"
             ],
         )
         # Get the other half of the first byte.
@@ -120,7 +120,7 @@ def test_mte_tag_core_file_tag_read(self):
             "memory tag read {addr}+16 {addr}+32".format(addr=self.MTE_BUF_ADDR),
             patterns=[
                 "Allocation tags:\n"
-                "\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)$"
+                r"\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)$"
             ],
         )
 
@@ -129,18 +129,18 @@ def test_mte_tag_core_file_tag_read(self):
             "memory tag read {addr} {addr}+48".format(addr=self.MTE_BUF_ADDR),
             patterns=[
                 "Allocation tags:\n"
-                "\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0\n"
-                "\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)\n"
-                "\[0x[A-Fa-f0-9]+20, 0x[A-Fa-f0-9]+30\): 0x2 \(mismatch\)$"
+                r"\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0\n"
+                r"\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)\n"
+                r"\[0x[A-Fa-f0-9]+20, 0x[A-Fa-f0-9]+30\): 0x2 \(mismatch\)$"
             ],
         )
         self.expect(
             "memory tag read {addr}+16 {addr}+64".format(addr=self.MTE_BUF_ADDR),
             patterns=[
                 "Allocation tags:\n"
-                "\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)\n"
-                "\[0x[A-Fa-f0-9]+20, 0x[A-Fa-f0-9]+30\): 0x2 \(mismatch\)\n"
-                "\[0x[A-Fa-f0-9]+30, 0x[A-Fa-f0-9]+40\): 0x3 \(mismatch\)$"
+                r"\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)\n"
+                r"\[0x[A-Fa-f0-9]+20, 0x[A-Fa-f0-9]+30\): 0x2 \(mismatch\)\n"
+                r"\[0x[A-Fa-f0-9]+30, 0x[A-Fa-f0-9]+40\): 0x3 \(mismatch\)$"
             ],
         )
         # Here both start and end are unaligned.
@@ -148,10 +148,10 @@ def test_mte_tag_core_file_tag_read(self):
             "memory tag read {addr}+16 {addr}+80".format(addr=self.MTE_BUF_ADDR),
             patterns=[
                 "Allocation tags:\n"
-                "\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)\n"
-                "\[0x[A-Fa-f0-9]+20, 0x[A-Fa-f0-9]+30\): 0x2 \(mismatch\)\n"
-                "\[0x[A-Fa-f0-9]+30, 0x[A-Fa-f0-9]+40\): 0x3 \(mismatch\)\n"
-                "\[0x[A-Fa-f0-9]+40, 0x[A-Fa-f0-9]+50\): 0x4 \(mismatch\)$"
+                r"\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)\n"
+                r"\[0x[A-Fa-f0-9]+20, 0x[A-Fa-f0-9]+30\): 0x2 \(mismatch\)\n"
+                r"\[0x[A-Fa-f0-9]+30, 0x[A-Fa-f0-9]+40\): 0x3 \(mismatch\)\n"
+                r"\[0x[A-Fa-f0-9]+40, 0x[A-Fa-f0-9]+50\): 0x4 \(mismatch\)$"
             ],
         )
 
@@ -160,7 +160,7 @@ def test_mte_tag_core_file_tag_read(self):
         self.expect(
             "memory tag read {addr} {addr}+1".format(addr=self.MTE_BUF_ADDR),
             patterns=[
-                "Allocation tags:\n" "\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0$"
+                "Allocation tags:\n" r"\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0$"
             ],
         )
 
@@ -170,8 +170,8 @@ def test_mte_tag_core_file_tag_read(self):
             "memory tag read {addr} {addr}+17".format(addr=self.MTE_BUF_ADDR),
             patterns=[
                 "Allocation tags:\n"
-                "\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0\n"
-                "\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)$"
+                r"\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0\n"
+                r"\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)$"
             ],
         )
 
@@ -180,9 +180,9 @@ def test_mte_tag_core_file_tag_read(self):
             "memory tag read {addr} {addr}+33".format(addr=self.MTE_BUF_ADDR),
             patterns=[
                 "Allocation tags:\n"
-                "\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0\n"
-                "\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)\n",
-                "\[0x[A-Fa-f0-9]+20, 0x[A-Fa-f0-9]+30\): 0x2 \(mismatch\)$",
+                r"\[0x[A-Fa-f0-9]+00, 0x[A-Fa-f0-9]+10\): 0x0\n"
+                r"\[0x[A-Fa-f0-9]+10, 0x[A-Fa-f0-9]+20\): 0x1 \(mismatch\)\n",
+                r"\[0x[A-Fa-f0-9]+20, 0x[A-Fa-f0-9]+30\): 0x2 \(mismatch\)$",
             ],
         )
 
diff --git a/lldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py b/lldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py
index c72eb72b05ccea..81c7e8122c1933 100644
--- a/lldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py
+++ b/lldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py
@@ -53,7 +53,7 @@ def test_mte_tag_read(self):
         self.expect(
             "memory tag read",
             substrs=[
-                "error: wrong number of arguments; expected at least <address-expression>, "
+                r"error: wrong number of arguments; expected at least <address-expression>, "
                 "at most <address-expression> <end-address-expression>"
             ],
             error=True,
@@ -61,7 +61,7 @@ def test_mte_tag_read(self):
         self.expect(
             "memory tag read mte_buf buf+16 32",
             substrs=[
-                "error: wrong number of arguments; expected at least <address-expression>, "
+                r"error: wrong number of arguments; expected at least <address-expression>, "
                 "at most <address-expression> <end-address-expression>"
             ],
             error=True,
@@ -69,7 +69,7 @@ def test_mte_tag_read(self):
         self.expect(
             "memory tag read not_a_symbol",
             substrs=[
-                'error: Invalid address expression, address expression "not_a_symbol" '
+                r'error: Invalid address expression, address expression "not_a_symbol" '
                 "evaluation failed"
             ],
             error=True,
@@ -77,7 +77,7 @@ def test_mte_tag_read(self):
         self.expect(
             "memory tag read mte_buf not_a_symbol",
             substrs=[
-                'error: Invalid end address expression, address expression "not_a_symbol" '
+                r'error: Invalid end address expression, address expression "not_a_symbol" '
                 "evaluation failed"
             ],
             error=True,
@@ -86,8 +86,8 @@ def test_mte_tag_read(self):
         self.expect(
             "memory tag read mte_buf mte_buf-16",
             patterns=[
-                "error: End address \(0x[A-Fa-f0-9]+\) must be "
-                "greater than the start address \(0x[A-Fa-f0-9]+\)"
+                r"error: End address \(0x[A-Fa-f0-9]+\) must be "
+                r"greater than the start address \(0x[A-Fa-f0-9]+\)"
             ],
             error=True,
         )
@@ -95,8 +95,8 @@ def test_mte_tag_read(self):
         self.expect(
             "memory tag read mte_buf mte_buf",
             patterns=[
-                "error: End address \(0x[A-Fa-f0-9]+\) must be "
-                "greater than the start address \(0x[A-Fa-f0-9]+\)"
+                r"error: End address \(0x[A-Fa-f0-9]+\) must be "
+                r"greater than the start address \(0x[A-Fa-f0-9]+\)"
             ],
             error=True,
         )
@@ -105,7 +105,7 @@ def test_mte_tag_read(self):
         self.expect(
             "memory tag read non_mte_buf",
             patterns=[
-                "error: Address range 0x[0-9A-Fa-f]+00:0x[0-9A-Fa-f]+10 is not "
+                r"error: Address range 0x[0-9A-Fa-f]+00:0x[0-9A-Fa-f]+10 is not "
                 "in a memory tagged region"
             ],
             error=True,
@@ -117,7 +117,7 @@ def test_mte_tag_read(self):
             patterns=[
                 "Logical tag: 0x9\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)$"
             ],
         )
 
@@ -127,7 +127,7 @@ def test_mte_tag_read(self):
             patterns=[
                 "Logical tag: 0x9\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)$"
             ],
         )
 
@@ -137,8 +137,8 @@ def test_mte_tag_read(self):
             patterns=[
                 "Logical tag: 0x9\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x1 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x1 \(mismatch\)$"
             ],
         )
 
@@ -150,7 +150,7 @@ def test_mte_tag_read(self):
             patterns=[
                 "Logical tag: 0x0\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+, 0x[0-9A-Fa-f]+\): 0x0$"
+                r"\[0x[0-9A-Fa-f]+, 0x[0-9A-Fa-f]+\): 0x0$"
             ],
         )
 
@@ -179,8 +179,8 @@ def test_mte_tag_read(self):
             patterns=[
                 "Logical tag: 0x9\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+f0, 0x[0-9A-Fa-f]+00\): 0xf \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+f0, 0x[0-9A-Fa-f]+00\): 0xf \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)$"
             ],
         )
 
@@ -192,7 +192,7 @@ def test_mte_tag_read(self):
             patterns=[
                 "Logical tag: 0xa\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x0 \(mismatch\)$"
             ],
         )
 
@@ -202,9 +202,9 @@ def test_mte_tag_read(self):
             patterns=[
                 "Logical tag: 0x9\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+80, 0x[0-9A-Fa-f]+90\): 0x8 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+90, 0x[0-9A-Fa-f]+a0\): 0x9\n"
-                "\[0x[0-9A-Fa-f]+a0, 0x[0-9A-Fa-f]+b0\): 0xa \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+80, 0x[0-9A-Fa-f]+90\): 0x8 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+90, 0x[0-9A-Fa-f]+a0\): 0x9\n"
+                r"\[0x[0-9A-Fa-f]+a0, 0x[0-9A-Fa-f]+b0\): 0xa \(mismatch\)$"
             ],
         )
 
@@ -258,8 +258,8 @@ def test_mte_tag_write(self):
             patterns=[
                 "Logical tag: 0x9\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x9\n"
-                "\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x1 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x9\n"
+                r"\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x1 \(mismatch\)$"
             ],
         )
 
@@ -270,9 +270,9 @@ def test_mte_tag_write(self):
             patterns=[
                 "Logical tag: 0x9\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0xa \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0xb \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+20, 0x[0-9A-Fa-f]+30\): 0xc \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0xa \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0xb \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+20, 0x[0-9A-Fa-f]+30\): 0xc \(mismatch\)$"
             ],
         )
 
@@ -284,7 +284,7 @@ def test_mte_tag_write(self):
             patterns=[
                 "Logical tag: 0x0\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+, 0x[0-9A-Fa-f]+\): 0xe \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+, 0x[0-9A-Fa-f]+\): 0xe \(mismatch\)$"
             ],
         )
 
@@ -323,8 +323,8 @@ def test_mte_tag_write(self):
             patterns=[
                 "Logical tag: 0x9\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+f0, 0x[0-9A-Fa-f]+00\): 0x1 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x2 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+f0, 0x[0-9A-Fa-f]+00\): 0x1 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x2 \(mismatch\)$"
             ],
         )
 
@@ -335,7 +335,7 @@ def test_mte_tag_write(self):
             patterns=[
                 "Logical tag: 0x0\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x1 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x1 \(mismatch\)$"
             ],
         )
 
@@ -361,16 +361,16 @@ def test_mte_tag_write(self):
         self.expect(
             "memory tag write mte_buf_2 9 --end-addr mte_buf_2",
             patterns=[
-                "error: End address \(0x[A-Fa-f0-9]+\) must be "
-                "greater than the start address \(0x[A-Fa-f0-9]+\)"
+                r"error: End address \(0x[A-Fa-f0-9]+\) must be "
+                r"greater than the start address \(0x[A-Fa-f0-9]+\)"
             ],
             error=True,
         )
         self.expect(
             "memory tag write mte_buf_2 9 --end-addr mte_buf_2-16",
             patterns=[
-                "error: End address \(0x[A-Fa-f0-9]+\) must be "
-                "greater than the start address \(0x[A-Fa-f0-9]+\)"
+                r"error: End address \(0x[A-Fa-f0-9]+\) must be "
+                r"greater than the start address \(0x[A-Fa-f0-9]+\)"
             ],
             error=True,
         )
@@ -391,10 +391,10 @@ def test_mte_tag_write(self):
             patterns=[
                 "Logical tag: 0x0\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x4 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x5 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+20, 0x[0-9A-Fa-f]+30\): 0x4 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+30, 0x[0-9A-Fa-f]+40\): 0x0$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x4 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x5 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+20, 0x[0-9A-Fa-f]+30\): 0x4 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+30, 0x[0-9A-Fa-f]+40\): 0x0$"
             ],
         )
 
@@ -409,9 +409,9 @@ def test_mte_tag_write(self):
             patterns=[
                 "Logical tag: 0x0\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x6 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x6 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+20, 0x[0-9A-Fa-f]+30\): 0x4 \(mismatch\)$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x6 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x6 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+20, 0x[0-9A-Fa-f]+30\): 0x4 \(mismatch\)$"
             ],
         )
 
@@ -423,10 +423,10 @@ def test_mte_tag_write(self):
             patterns=[
                 "Logical tag: 0x0\n"
                 "Allocation tags:\n"
-                "\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x3 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x3 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+20, 0x[0-9A-Fa-f]+30\): 0x3 \(mismatch\)\n"
-                "\[0x[0-9A-Fa-f]+30, 0x[0-9A-Fa-f]+40\): 0x0$"
+                r"\[0x[0-9A-Fa-f]+00, 0x[0-9A-Fa-f]+10\): 0x3 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+10, 0x[0-9A-Fa-f]+20\): 0x3 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+20, 0x[0-9A-Fa-f]+30\): 0x3 \(mismatch\)\n"
+                r"\[0x[0-9A-Fa-f]+30, 0x[0-9A-Fa-f]+40\): 0x0$"
             ],
         )
 
@@ -452,8 +452,8 @@ def test_mte_memory_read_tag_display(self):
         self.expect(
             'memory read mte_buf mte_buf+32 -f "x" -l 1 -s 16 --show-tags',
             patterns=[
-                "0x[0-9A-Fa-f]+00: 0x0+ \(tag: 0x0\)\n"
-                "0x[0-9A-Fa-f]+10: 0x0+ \(tag: 0x1\)"
+                r"0x[0-9A-Fa-f]+00: 0x0+ \(tag: 0x0\)\n"
+                r"0x[0-9A-Fa-f]+10: 0x0+ \(tag: 0x1\)"
             ],
         )
 
@@ -461,13 +461,13 @@ def test_mte_memory_read_tag_display(self):
         # per line.
         self.expect(
             'memory read mte_buf mte_buf+32 -f "x" -l 1 -s 32 --show-tags',
-            patterns=["0x[0-9A-Fa-f]+00: 0x0+ \(tags: 0x0 0x1\)\n"],
+            patterns=[r"0x[0-9A-Fa-f]+00: 0x0+ \(tags: 0x0 0x1\)\n"],
         )
 
         # Reading half a granule still shows you the tag for that granule
         self.expect(
             'memory read mte_buf mte_buf+8 -f "x" -l 1 -s 8 --show-tags',
-            patterns=["0x[0-9A-Fa-f]+00: 0x0+ \(tag: 0x0\)\n"],
+            patterns=[r"0x[0-9A-Fa-f]+00: 0x0+ \(tag: 0x0\)\n"],
         )
 
         # We can read a whole number of granules but split them over more lines
@@ -475,10 +475,10 @@ def test_mte_memory_read_tag_display(self):
         self.expect(
             'memory read mte_buf+32 mte_buf+64 -f "x" -l 1 -s 8 --show-tags',
             patterns=[
-                "0x[0-9A-Fa-f]+20: 0x0+ \(tag: 0x2\)\n"
-                "0x[0-9A-Fa-f]+28: 0x0+ \(tag: 0x2\)\n"
-                "0x[0-9A-Fa-f]+30: 0x0+ \(tag: 0x3\)\n"
-                "0x[0-9A-Fa-f]+38: 0x0+ \(tag: 0x3\)"
+                r"0x[0-9A-Fa-f]+20: 0x0+ \(tag: 0x2\)\n"
+                r"0x[0-9A-Fa-f]+28: 0x0+ \(tag: 0x2\)\n"
+                r"0x[0-9A-Fa-f]+30: 0x0+ \(tag: 0x3\)\n"
+                r"0x[0-9A-Fa-f]+38: 0x0+ \(tag: 0x3\)"
             ],
         )
 
@@ -488,10 +488,10 @@ def test_mte_memory_read_tag_display(self):
         self.expect(
             'memory read mte_buf+32+8 mte_buf+64+8 -f "x" -l 1 -s 8 --show-tags',
             patterns=[
-                "0x[0-9A-Fa-f]+28: 0x0+ \(tag: 0x2\)\n"
-                "0x[0-9A-Fa-f]+30: 0x0+ \(tag: 0x3\)\n"
-                "0x[0-9A-Fa-f]+38: 0x0+ \(tag: 0x3\)\n"
-                "0x[0-9A-Fa-f]+40: 0x0+ \(tag: 0x4\)"
+                r"0x[0-9A-Fa-f]+28: 0x0+ \(tag: 0x2\)\n"
+                r"0x[0-9A-Fa-f]+30: 0x0+ \(tag: 0x3\)\n"
+                r"0x[0-9A-Fa-f]+38: 0x0+ \(tag: 0x3\)\n"
+                r"0x[0-9A-Fa-f]+40: 0x0+ \(tag: 0x4\)"
             ],
         )
 
@@ -501,10 +501,10 @@ def test_mte_memory_read_tag_display(self):
         self.expect(
             'memory read mte_buf+32+4 mte_buf+64+4 -f "x" -l 1 -s 8 --show-tags',
             patterns=[
-                "0x[0-9A-Fa-f]+24: 0x0+ \(tag: 0x2\)\n"
-                "0x[0-9A-Fa-f]+2c: 0x0+ \(tags: 0x2 0x3\)\n"
-                "0x[0-9A-Fa-f]+34: 0x0+ \(tag: 0x3\)\n"
-                "0x[0-9A-Fa-f]+3c: 0x0+ \(tags: 0x3 0x4\)"
+                r"0x[0-9A-Fa-f]+24: 0x0+ \(tag: 0x2\)\n"
+                r"0x[0-9A-Fa-f]+2c: 0x0+ \(tags: 0x2 0x3\)\n"
+                r"0x[0-9A-Fa-f]+34: 0x0+ \(tag: 0x3\)\n"
+                r"0x[0-9A-Fa-f]+3c: 0x0+ \(tags: 0x3 0x4\)"
             ],
         )
 
@@ -516,15 +516,15 @@ def test_mte_memory_read_tag_display(self):
             'memory read mte_buf-16 mte_buf+32 -f "x" -l 1 -s 16 --show-tags',
             patterns=[
                 "0x[0-9A-Fa-f]+f0: 0x0+\n"
-                "0x[0-9A-Fa-f]+00: 0x0+ \(tag: 0x0\)\n"
-                "0x[0-9A-Fa-f]+10: 0x0+ \(tag: 0x1\)"
+                r"0x[0-9A-Fa-f]+00: 0x0+ \(tag: 0x0\)\n"
+                r"0x[0-9A-Fa-f]+10: 0x0+ \(tag: 0x1\)"
             ],
         )
 
         # End of range is untagged
         self.expect(
             'memory read mte_buf+page_size-16 mte_buf+page_size+16 -f "x" -l 1 -s 16 --show-tags',
-            patterns=["0x[0-9A-Fa-f]+f0: 0x0+ \(tag: 0xf\)\n" "0x[0-9A-Fa-f]+00: 0x0+"],
+            patterns=[r"0x[0-9A-Fa-f]+f0: 0x0+ \(tag: 0xf\)\n" "0x[0-9A-Fa-f]+00: 0x0+"],
         )
 
         # The smallest MTE range we can get is a single page so we just check
@@ -533,8 +533,8 @@ def test_mte_memory_read_tag_display(self):
         self.expect(
             'memory read mte_read_only-16 mte_read_only+page_size+16 -f "x" -l 1 -s 16 --force --show-tags',
             patterns=[
-                "0x[0-9A-Fa-f]+f0: 0x0+\n" "0x[0-9A-Fa-f]+00: 0x0+ \(tag: 0x0\)\n",
-                "0x[0-9A-Fa-f]+f0: 0x0+ \(tag: 0x0\)\n" "0x[0-9A-Fa-f]+00: 0x0+",
+                r"0x[0-9A-Fa-f]+f0: 0x0+\n" r"0x[0-9A-Fa-f]+00: 0x0+ \(tag: 0x0\)\n",
+                r"0x[0-9A-Fa-f]+f0: 0x0+ \(tag: 0x0\)\n" "0x[0-9A-Fa-f]+00: 0x0+",
             ],
         )
 
@@ -542,21 +542,21 @@ def test_mte_memory_read_tag_display(self):
         # <no tag> is shown in where the tag would be, to keep the order intact.
         self.expect(
             'memory read mte_buf-16 mte_buf+32 -f "x" -l 1 -s 32 --show-tags',
-            patterns=["0x[0-9A-Fa-f]+f0: 0x0+ \(tags: <no tag> 0x0\)"],
+            patterns=[r"0x[0-9A-Fa-f]+f0: 0x0+ \(tags: <no tag> 0x0\)"],
         )
         self.expect(
             'memory read mte_read_only+page_size-16 mte_read_only+page_size+16 -f "x" -l 1 -s 32  --show-tags',
-            patterns=["0x[0-9A-Fa-f]+f0: 0x0+ \(tags: 0x0 <no tag>\)"],
+            patterns=[r"0x[0-9A-Fa-f]+f0: 0x0+ \(tags: 0x0 <no tag>\)"],
         )
 
         # Here the start address is unaligned so we cover 3 granules instead of 2
         self.expect(
             'memory read mte_buf-16+4 mte_buf+32+4 -f "x" -l 1 -s 32 --show-tags',
-            patterns=["0x[0-9A-Fa-f]+f4: 0x0+ \(tags: <no tag> 0x0 0x1\)"],
+            patterns=[r"0x[0-9A-Fa-f]+f4: 0x0+ \(tags: <no tag> 0x0 0x1\)"],
         )
         self.expect(
             'memory read mte_read_only+page_size-16+4 mte_read_only+page_size+16+4 -f "x" -l 1 -s 32 --show-tags',
-            patterns=["0x[0-9A-Fa-f]+f4: 0x0+ \(tags: 0x0 <no tag> <no tag>\)"],
+            patterns=[r"0x[0-9A-Fa-f]+f4: 0x0+ \(tags: 0x0 <no tag> <no tag>\)"],
         )
 
         # Some formats call DumpDataExtractor multiple times,
@@ -564,24 +564,24 @@ def test_mte_memory_read_tag_display(self):
         self.expect(
             'memory read mte_buf mte_buf+32 -f "x" --show-tags',
             patterns=[
-                "0x[0-9A-Fa-f]+00: 0x0+ 0x0+ 0x0+ 0x0+ \(tag: 0x0\)\n",
-                "0x[0-9A-Fa-f]+10: 0x0+ 0x0+ 0x0+ 0x0+ \(tag: 0x1\)",
+                r"0x[0-9A-Fa-f]+00: 0x0+ 0x0+ 0x0+ 0x0+ \(tag: 0x0\)\n",
+                r"0x[0-9A-Fa-f]+10: 0x0+ 0x0+ 0x0+ 0x0+ \(tag: 0x1\)",
             ],
         )
 
         self.expect(
             'memory read mte_buf mte_buf+32 -f "bytes with ASCII" --show-tags',
             patterns=[
-                "0x[0-9A-Fa-f]+00: (00 ){16} \.{16} \(tag: 0x0\)\n",
-                "0x[0-9A-Fa-f]+10: (00 ){16} \.{16} \(tag: 0x1\)",
+                r"0x[0-9A-Fa-f]+00: (00 ){16} \.{16} \(tag: 0x0\)\n",
+                r"0x[0-9A-Fa-f]+10: (00 ){16} \.{16} \(tag: 0x1\)",
             ],
         )
 
         self.expect(
             'memory read mte_buf mte_buf+32 -f "uint8_t[]" -s 16 -l 1 --show-tags',
             patterns=[
-                "0x[0-9A-Fa-f]+00: \{(0x00 ){15}0x00\} \(tag: 0x0\)\n"
-                "0x[0-9A-Fa-f]+10: \{(0x00 ){15}0x00\} \(tag: 0x1\)"
+                r"0x[0-9A-Fa-f]+00: \{(0x00 ){15}0x00\} \(tag: 0x0\)\n"
+                r"0x[0-9A-Fa-f]+10: \{(0x00 ){15}0x00\} \(tag: 0x1\)"
             ],
         )
 
@@ -594,12 +594,12 @@ def test_mte_memory_read_tag_display_repeated(self):
 
         self.expect(
             'memory read mte_buf mte_buf+16 -f "x" --show-tags',
-            patterns=["0x[0-9A-fa-f]+00: 0x0+ 0x0+ 0x0+ 0x0+ \(tag: 0x0\)"],
+            patterns=[r"0x[0-9A-fa-f]+00: 0x0+ 0x0+ 0x0+ 0x0+ \(tag: 0x0\)"],
         )
         # Equivalent to just pressing enter on the command line.
         self.expect(
             "memory read",
-            patterns=["0x[0-9A-fa-f]+10: 0x0+ 0x0+ 0x0+ 0x0+ \(tag: 0x1\)"],
+            patterns=[r"0x[0-9A-fa-f]+10: 0x0+ 0x0+ 0x0+ 0x0+ \(tag: 0x1\)"],
         )
 
         # You can add the argument to an existing repetition without resetting
@@ -613,10 +613,10 @@ def test_mte_memory_read_tag_display_repeated(self):
         # Note that the formatting returns to default here.
         self.expect(
             "memory read --show-tags",
-            patterns=["0x[0-9A-fa-f]+20: (00 )+ \.+ \(tag: 0x2\)"],
+            patterns=[r"0x[0-9A-fa-f]+20: (00 )+ \.+ \(tag: 0x2\)"],
         )
         self.expect(
-            "memory read", patterns=["0x[0-9A-fa-f]+30: (00 )+ \.+ \(tag: 0x3\)"]
+            "memory read", patterns=[r"0x[0-9A-fa-f]+30: (00 )+ \.+ \(tag: 0x3\)"]
         )
 
         # A fresh command reverts to the default of tags being off.
@@ -641,8 +641,8 @@ def test_mte_memory_find(self):
         cmd = 'memory find -s "LLDB" mte_buf+64 mte_buf+512'
         found_pattern = "data found at location: 0x[0-9A-Fa-f]+80"
         results_patterns = [
-            "0x[0-9A-Fa-f]+80: 4c 4c 44 42 (00 )+ LLDB\.+",
-            "0x[0-9A-Fa-f]+90: 00 00 00 00 (00 )+ \.+",
+            r"0x[0-9A-Fa-f]+80: 4c 4c 44 42 (00 )+ LLDB\.+",
+            r"0x[0-9A-Fa-f]+90: 00 00 00 00 (00 )+ \.+",
         ]
 
         # Default is not to show tags
@@ -651,8 +651,8 @@ def test_mte_memory_find(self):
             cmd + " --show-tags",
             patterns=[
                 found_pattern,
-                results_patterns[0] + " \(tag: 0x8\)",
-                results_patterns[1] + " \(tag: 0x9\)",
+                results_patterns[0] + r" \(tag: 0x8\)",
+                results_patterns[1] + r" \(tag: 0x9\)",
             ],
         )
 
@@ -661,7 +661,7 @@ def test_mte_memory_find(self):
             'memory find -s "DB" mte_buf+64 mte_buf+512 --show-tags',
             patterns=[
                 "data found at location: 0x[0-9A-Fa-f]+82\n"
-                "0x[0-9A-Fa-f]+82: 44 42 (00 )+ DB\.+ \(tags: 0x8 0x9\)\n",
-                "0x[0-9A-Fa-f]+92: 00 00 (00 )+ ..\.+ \(tags: 0x9 0xa\)",
+                r"0x[0-9A-Fa-f]+82: 44 42 (00 )+ DB\.+ \(tags: 0x8 0x9\)\n",
+                r"0x[0-9A-Fa-f]+92: 00 00 (00 )+ ..\.+ \(tags: 0x9 0xa\)",
             ],
         )
diff --git a/lldb/test/API/linux/aarch64/mte_tag_faults/TestAArch64LinuxMTEMemoryTagFaults.py b/lldb/test/API/linux/aarch64/mte_tag_faults/TestAArch64LinuxMTEMemoryTagFaults.py
index 420aae48234888..180a3f67df67a6 100644
--- a/lldb/test/API/linux/aarch64/mte_tag_faults/TestAArch64LinuxMTEMemoryTagFaults.py
+++ b/lldb/test/API/linux/aarch64/mte_tag_faults/TestAArch64LinuxMTEMemoryTagFaults.py
@@ -50,9 +50,9 @@ def test_mte_tag_fault_sync(self):
         self.expect(
             "continue",
             patterns=[
-                "\* thread #1, name = 'a.out', stop reason = signal SIGSEGV: "
-                "sync tag check fault \(fault address: 0x9[0-9A-Fa-f]+11\ "
-                "logical tag: 0x9 allocation tag: 0xa\)"
+                r"\* thread #1, name = 'a.out', stop reason = signal SIGSEGV: "
+                r"sync tag check fault \(fault address: 0x9[0-9A-Fa-f]+11\ "
+                r"logical tag: 0x9 allocation tag: 0xa\)"
             ],
         )
 
diff --git a/lldb/test/API/linux/aarch64/tagged_memory_region/TestAArch64LinuxTaggedMemoryRegion.py b/lldb/test/API/linux/aarch64/tagged_memory_region/TestAArch64LinuxTaggedMemoryRegion.py
index 8eadd65466a49c..9c4799a5339052 100644
--- a/lldb/test/API/linux/aarch64/tagged_memory_region/TestAArch64LinuxTaggedMemoryRegion.py
+++ b/lldb/test/API/linux/aarch64/tagged_memory_region/TestAArch64LinuxTaggedMemoryRegion.py
@@ -39,7 +39,7 @@ def test_mte_regions(self):
 
         # Despite the non address bits we should find a region
         self.expect(
-            "memory region the_page", patterns=["\[0x[0-9A-Fa-f]+-0x[0-9A-Fa-f]+\) r-x"]
+            "memory region the_page", patterns=[r"\[0x[0-9A-Fa-f]+-0x[0-9A-Fa-f]+\) r-x"]
         )
 
         # Check that the usual error message is displayed after repeating
@@ -68,5 +68,5 @@ def test_mte_regions(self):
         # This should not error, since the user supplied address overrides
         # the previous end address.
         self.expect(
-            "memory region the_page", patterns=["\[0x[0-9A-Fa-f]+-0x[0-9A-Fa-f]+\) r-x"]
+            "memory region the_page", patterns=[r"\[0x[0-9A-Fa-f]+-0x[0-9A-Fa-f]+\) r-x"]
         )
diff --git a/lldb/test/API/macosx/add-dsym/TestAddDsymDownload.py b/lldb/test/API/macosx/add-dsym/TestAddDsymDownload.py
index 52055f250a5845..8ff72c9a74eddf 100644
--- a/lldb/test/API/macosx/add-dsym/TestAddDsymDownload.py
+++ b/lldb/test/API/macosx/add-dsym/TestAddDsymDownload.py
@@ -6,7 +6,7 @@
 
 @skipUnlessDarwin
 class AddDsymDownload(TestBase):
-    dwarfdump_uuid_regex = re.compile("UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
+    dwarfdump_uuid_regex = re.compile(r"UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
 
     def get_uuid(self):
         dwarfdump_cmd_output = subprocess.check_output(
diff --git a/lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py b/lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py
index db3074d7e79420..9309de4824ec4a 100644
--- a/lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py
+++ b/lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py
@@ -285,7 +285,7 @@ def test_lc_note_main_bin_spec_os_plugin(self):
             for l in python_init:
                 writer.write(l + "\n")
 
-        dwarfdump_uuid_regex = re.compile("UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
+        dwarfdump_uuid_regex = re.compile(r"UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
         dwarfdump_cmd_output = subprocess.check_output(
             ('/usr/bin/dwarfdump --uuid "%s"' % aout_exe), shell=True
         ).decode("utf-8")
diff --git a/lldb/test/API/macosx/lc-note/kern-ver-str/TestKernVerStrLCNOTE.py b/lldb/test/API/macosx/lc-note/kern-ver-str/TestKernVerStrLCNOTE.py
index d4366196c53c39..a3f9144572da56 100644
--- a/lldb/test/API/macosx/lc-note/kern-ver-str/TestKernVerStrLCNOTE.py
+++ b/lldb/test/API/macosx/lc-note/kern-ver-str/TestKernVerStrLCNOTE.py
@@ -32,7 +32,7 @@ def test_lc_note(self):
             lambda: os.environ.pop("LLDB_APPLE_DSYMFORUUID_EXECUTABLE", None)
         )
 
-        dwarfdump_uuid_regex = re.compile("UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
+        dwarfdump_uuid_regex = re.compile(r"UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
         dwarfdump_cmd_output = subprocess.check_output(
             ('/usr/bin/dwarfdump --uuid "%s"' % self.test_exe), shell=True
         ).decode("utf-8")
diff --git a/lldb/test/API/macosx/lc-note/multiple-binary-corefile/TestMultipleBinaryCorefile.py b/lldb/test/API/macosx/lc-note/multiple-binary-corefile/TestMultipleBinaryCorefile.py
index 897eab23e05e2f..28472cb787d4a2 100644
--- a/lldb/test/API/macosx/lc-note/multiple-binary-corefile/TestMultipleBinaryCorefile.py
+++ b/lldb/test/API/macosx/lc-note/multiple-binary-corefile/TestMultipleBinaryCorefile.py
@@ -107,7 +107,7 @@ def test_corefile_binaries_dsymforuuid(self):
             )
         )
 
-        dwarfdump_uuid_regex = re.compile("UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
+        dwarfdump_uuid_regex = re.compile(r"UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
         dwarfdump_cmd_output = subprocess.check_output(
             ('/usr/bin/dwarfdump --uuid "%s"' % self.libtwo_exe), shell=True
         ).decode("utf-8")
diff --git a/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py b/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py
index b712afdd7560a7..65cc1030cc2022 100644
--- a/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py
+++ b/lldb/test/API/macosx/simulator/TestSimulatorPlatform.py
@@ -72,7 +72,7 @@ def run_with(self, arch, os, vers, env, expected_load_command):
             self, "break here", lldb.SBFileSpec("hello.c")
         )
         triple_re = "-".join([arch, "apple", os + vers + ".*"] + env_list)
-        self.expect("image list -b -t", patterns=["a\.out " + triple_re])
+        self.expect(r"image list -b -t", patterns=[r"a\.out " + triple_re])
         self.check_debugserver(log, os + env, vers)
 
     @skipIfAsan
diff --git a/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py b/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py
index 138792d817dbf3..3ed817f5f5f84d 100644
--- a/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py
+++ b/lldb/test/API/macosx/skinny-corefile/TestSkinnyCorefile.py
@@ -43,7 +43,7 @@ def test_lc_note(self):
             lambda: os.environ.pop("LLDB_APPLE_DSYMFORUUID_EXECUTABLE", None)
         )
 
-        dwarfdump_uuid_regex = re.compile("UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
+        dwarfdump_uuid_regex = re.compile(r"UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
         dwarfdump_cmd_output = subprocess.check_output(
             ('/usr/bin/dwarfdump --uuid "%s"' % self.aout_exe), shell=True
         ).decode("utf-8")
diff --git a/lldb/test/API/python_api/address_range/TestAddressRange.py b/lldb/test/API/python_api/address_range/TestAddressRange.py
index ae4b8c7c90ce40..35640227024973 100644
--- a/lldb/test/API/python_api/address_range/TestAddressRange.py
+++ b/lldb/test/API/python_api/address_range/TestAddressRange.py
@@ -191,7 +191,7 @@ def test_address_range_print_resolved(self):
         interp.HandleCommand(script, result, False)
         self.assertTrue(result.Succeeded(), "script command succeeded")
         # [0x1000-0x2000] // Resolved with target or addresses without sections
-        self.assertRegex(result.GetOutput(), "^\[0x[0-9a-f]+\-0x[0-9a-f]+\)")
+        self.assertRegex(result.GetOutput(), r"^\[0x[0-9a-f]+\-0x[0-9a-f]+\)")
         process.Kill()
 
     def test_address_range_print_no_section_resolved(self):
@@ -215,7 +215,7 @@ def test_address_range_print_no_section_resolved(self):
 
         range_str = str(range)
         # [0x1000-0x2000] // Resolved with target or addresses without sections
-        self.assertRegex(range_str, "^\[0x[0-9a-f]+\-0x[0-9a-f]+\)$")
+        self.assertRegex(range_str, r"^\[0x[0-9a-f]+\-0x[0-9a-f]+\)$")
         process.Kill()
 
     def test_address_range_print_not_resolved(self):
@@ -223,7 +223,7 @@ def test_address_range_print_not_resolved(self):
         range = lldb.SBAddressRange(self.addr1, 8)
         range_str = str(range)
         # a.out[0x1000-0x2000] // Without target
-        self.assertRegex(range_str, "^a.out\[0x[0-9a-f]+\-0x[0-9a-f]+\)$")
+        self.assertRegex(range_str, r"^a.out\[0x[0-9a-f]+\-0x[0-9a-f]+\)$")
 
     def test_address_range_list_print(self):
         """Make sure the SBAddressRangeList can be printed."""
diff --git a/lldb/test/API/python_api/target-arch-from-module/TestTargetArchFromModule.py b/lldb/test/API/python_api/target-arch-from-module/TestTargetArchFromModule.py
index 260f37c9ed2300..0141828ae1eab9 100644
--- a/lldb/test/API/python_api/target-arch-from-module/TestTargetArchFromModule.py
+++ b/lldb/test/API/python_api/target-arch-from-module/TestTargetArchFromModule.py
@@ -34,7 +34,7 @@ def test_target_arch_init(self):
             lambda: os.environ.pop("LLDB_APPLE_DSYMFORUUID_EXECUTABLE", None)
         )
 
-        dwarfdump_uuid_regex = re.compile("UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
+        dwarfdump_uuid_regex = re.compile(r"UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*")
         dwarfdump_cmd_output = subprocess.check_output(
             ('/usr/bin/dwarfdump --uuid "%s"' % aout_exe), shell=True
         ).decode("utf-8")
diff --git a/lldb/test/API/source-manager/TestSourceManager.py b/lldb/test/API/source-manager/TestSourceManager.py
index ad7c85aac70eaf..589192ba674951 100644
--- a/lldb/test/API/source-manager/TestSourceManager.py
+++ b/lldb/test/API/source-manager/TestSourceManager.py
@@ -256,7 +256,7 @@ def test_modify_source_file_while_debugging(self):
         # of breakpoints for the current line, i.e., self.line.
         import re
 
-        m = re.search("^\[(\d+)\].*// Set break point at this line.", output)
+        m = re.search(r"^\[(\d+)\].*// Set break point at this line.", output)
         if not m:
             self.fail("Fail to display source level breakpoints")
         self.assertGreater(int(m.group(1)), 0)
diff --git a/lldb/test/API/tools/lldb-server/TestGdbRemoteModuleInfo.py b/lldb/test/API/tools/lldb-server/TestGdbRemoteModuleInfo.py
index 132072547e207c..c8055f9b6320c6 100644
--- a/lldb/test/API/tools/lldb-server/TestGdbRemoteModuleInfo.py
+++ b/lldb/test/API/tools/lldb-server/TestGdbRemoteModuleInfo.py
@@ -42,7 +42,7 @@ def test_module_info(self):
         context = self.expect_gdbremote_sequence()
         spec = context.get("spec")
         self.assertRegex(spec, '"file_path":".*"')
-        self.assertRegex(spec, '"file_offset":\d+')
-        self.assertRegex(spec, '"file_size":\d+')
-        self.assertRegex(spec, '"triple":"\w*-\w*-.*"')
+        self.assertRegex(spec, r'"file_offset":\d+')
+        self.assertRegex(spec, r'"file_size":\d+')
+        self.assertRegex(spec, r'"triple":"\w*-\w*-.*"')
         self.assertRegex(spec, '"uuid":"[A-Fa-f0-9]+"')
diff --git a/lldb/test/API/tools/lldb-server/TestPtyServer.py b/lldb/test/API/tools/lldb-server/TestPtyServer.py
index 345f68f6d87d3d..c3cb1706cffd1f 100644
--- a/lldb/test/API/tools/lldb-server/TestPtyServer.py
+++ b/lldb/test/API/tools/lldb-server/TestPtyServer.py
@@ -65,7 +65,7 @@ def test_pty_server(self):
                 "read packet: $qXfer:features:read:target.xml:0,200000#00",
                 {
                     "direction": "send",
-                    "regex": re.compile("^\$l(.+)#[0-9a-fA-F]{2}$", flags=re.DOTALL),
+                    "regex": re.compile(r"^\$l(.+)#[0-9a-fA-F]{2}$", flags=re.DOTALL),
                     "capture": {1: "target_xml"},
                 },
             ],
diff --git a/lldb/test/API/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py b/lldb/test/API/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py
index bd78a83c656554..c1a92eeb5d5d1f 100644
--- a/lldb/test/API/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py
+++ b/lldb/test/API/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py
@@ -24,7 +24,7 @@ def test_g_target_xml_returns_correct_data(self):
                 ),
                 {
                     "direction": "send",
-                    "regex": re.compile("^\$l(.+)#[0-9a-fA-F]{2}$", flags=re.DOTALL),
+                    "regex": re.compile(r"^\$l(.+)#[0-9a-fA-F]{2}$", flags=re.DOTALL),
                     "capture": {1: "target_xml"},
                 },
             ],
diff --git a/lldb/test/API/types/AbstractBase.py b/lldb/test/API/types/AbstractBase.py
index 043a5510c62f2d..fb1e25254b2819 100644
--- a/lldb/test/API/types/AbstractBase.py
+++ b/lldb/test/API/types/AbstractBase.py
@@ -20,7 +20,7 @@ def Msg(var, val, using_frame_variable):
 class GenericTester(TestBase):
     # This is the pattern by design to match the " var = 'value'" output from
     # printf() stmts (see basic_type.cpp).
-    pattern = re.compile(" (\*?a[^=]*) = '([^=]*)'$")
+    pattern = re.compile(r" (\*?a[^=]*) = '([^=]*)'$")
 
     # Assert message.
     DATA_TYPE_GROKKED = "Data type from expr parser output is parsed correctly"
@@ -205,7 +205,7 @@ def generic_type_tester(
             #     output: (char) a_array_bounded[0] = 'a'
             #
             try:
-                dt = re.match("^\((.*)\)", output).group(1)
+                dt = re.match(r"^\((.*)\)", output).group(1)
             except:
                 self.fail(self.DATA_TYPE_GROKKED)
 
@@ -284,7 +284,7 @@ def generic_type_expr_tester(
             #     output: (double) $0 = 1100.12
             #
             try:
-                dt = re.match("^\((.*)\) \$[0-9]+ = ", output).group(1)
+                dt = re.match(r"^\((.*)\) \$[0-9]+ = ", output).group(1)
             except:
                 self.fail(self.DATA_TYPE_GROKKED)
 
diff --git a/lldb/utils/lui/sourcewin.py b/lldb/utils/lui/sourcewin.py
index efe3c01f3ebd11..a72dad5985ecdf 100644
--- a/lldb/utils/lui/sourcewin.py
+++ b/lldb/utils/lui/sourcewin.py
@@ -210,7 +210,7 @@ def getLocations(event):
                 # inlined frames, so we get the description (which does take
                 # into account inlined functions) and parse it.
                 desc = lldbutil.get_description(location, lldb.eDescriptionLevelFull)
-                match = re.search("at\ ([^:]+):([\d]+)", desc)
+                match = re.search(r"at\ ([^:]+):([\d]+)", desc)
                 try:
                     path = match.group(1)
                     line = int(match.group(2).strip())
diff --git a/llvm/test/CodeGen/NVPTX/wmma.py b/llvm/test/CodeGen/NVPTX/wmma.py
index e1e46f0b8cab34..8f6378e3ce3cc1 100644
--- a/llvm/test/CodeGen/NVPTX/wmma.py
+++ b/llvm/test/CodeGen/NVPTX/wmma.py
@@ -847,7 +847,7 @@ def gen_check_unsupported_ops(items):
     )
     print("; INTRINSICS: {{^; INTRINSICS_LIST_BEGIN}}")
     print(
-        """
+        r"""
 
 ; NOEXTGEOM-NOT: {{m8n32|m32n8}}
 ; NOINT-NOT: .{{s32|s8}}
diff --git a/llvm/tools/opt-viewer/opt-viewer.py b/llvm/tools/opt-viewer/opt-viewer.py
index c9c7db726f7652..2d32d66bbe3aee 100755
--- a/llvm/tools/opt-viewer/opt-viewer.py
+++ b/llvm/tools/opt-viewer/opt-viewer.py
@@ -135,7 +135,7 @@ def render_inline_remarks(self, r, line):
         # Column is the number of characters *including* tabs, keep those and
         # replace everything else with spaces.
         indent = line[: max(r.Column, 1) - 1]
-        indent = re.sub("\S", " ", indent)
+        indent = re.sub(r"\S", " ", indent)
 
         # Create expanded message and link if we have a multiline message.
         lines = r.message.split("\n")
diff --git a/llvm/utils/DSAclean.py b/llvm/utils/DSAclean.py
index 1b833ff8932483..6937ca9e614f56 100755
--- a/llvm/utils/DSAclean.py
+++ b/llvm/utils/DSAclean.py
@@ -24,7 +24,7 @@
 # it would kill old computers
 buffer = input.readline()
 while buffer != "":
-    if re.compile('label(\s*)=(\s*)"\s%tmp(.\w*)*(\s*)"').search(buffer):
+    if re.compile(r'label(\s*)=(\s*)"\s%tmp(.\w*)*(\s*)"').search(buffer):
         # skip next line, write neither this line nor the next
         buffer = input.readline()
     else:
diff --git a/llvm/utils/DSAextract.py b/llvm/utils/DSAextract.py
index 96f818bd2a8316..9787922e5f6742 100755
--- a/llvm/utils/DSAextract.py
+++ b/llvm/utils/DSAextract.py
@@ -69,7 +69,7 @@
             # if this name is for the current node, add the dot variable name
             # for the node (it will be Node(hex number)) to our set of nodes
             if regexp.search(buffer):
-                node_set |= set([re.split("\s+", buffer, 2)[1]])
+                node_set |= set([re.split(r"\s+", buffer, 2)[1]])
                 break
     buffer = input.readline()
 
@@ -105,7 +105,7 @@
         if nodes[0][:13] in node_set and nodes[1][:13] in node_set:
             output.write(buffer)
     elif nodeexp.search(buffer):  # this is a node line
-        node = re.split("\s+", buffer, 2)[1]
+        node = re.split(r"\s+", buffer, 2)[1]
         if node in node_set:
             output.write(buffer)
     else:  # this is a support line
diff --git a/llvm/utils/add_argument_names.py b/llvm/utils/add_argument_names.py
index 2860dd4b90bcb5..af2f1297d9ee7f 100755
--- a/llvm/utils/add_argument_names.py
+++ b/llvm/utils/add_argument_names.py
@@ -4,7 +4,7 @@
 
 def fix_string(s):
     TYPE = re.compile(
-        '\s*(i[0-9]+|float|double|x86_fp80|fp128|ppc_fp128|\[\[.*?\]\]|\[2 x \[\[[A-Z_0-9]+\]\]\]|<.*?>|{.*?}|\[[0-9]+ x .*?\]|%["a-z:A-Z0-9._]+({{.*?}})?|%{{.*?}}|{{.*?}}|\[\[.*?\]\])(\s*(\*|addrspace\(.*?\)|dereferenceable\(.*?\)|byval\(.*?\)|sret|zeroext|inreg|returned|signext|nocapture|align \d+|swiftself|swifterror|readonly|noalias|inalloca|nocapture))*\s*'
+        r'\s*(i[0-9]+|float|double|x86_fp80|fp128|ppc_fp128|\[\[.*?\]\]|\[2 x \[\[[A-Z_0-9]+\]\]\]|<.*?>|{.*?}|\[[0-9]+ x .*?\]|%["a-z:A-Z0-9._]+({{.*?}})?|%{{.*?}}|{{.*?}}|\[\[.*?\]\])(\s*(\*|addrspace\(.*?\)|dereferenceable\(.*?\)|byval\(.*?\)|sret|zeroext|inreg|returned|signext|nocapture|align \d+|swiftself|swifterror|readonly|noalias|inalloca|nocapture))*\s*'
     )
 
     counter = 0
diff --git a/llvm/utils/convert-constraint-log-to-z3.py b/llvm/utils/convert-constraint-log-to-z3.py
index a3c33f2ef45996..f96ac3106f68b4 100755
--- a/llvm/utils/convert-constraint-log-to-z3.py
+++ b/llvm/utils/convert-constraint-log-to-z3.py
@@ -46,7 +46,7 @@ def main():
         content = f.read()
 
     groups = content.split("---")
-    var_re = re.compile("x\d+")
+    var_re = re.compile(r"x\d+")
 
     print("from z3 import *")
     for group in groups:
diff --git a/llvm/utils/extract_symbols.py b/llvm/utils/extract_symbols.py
index 684e124c762594..eccbc496699fee 100755
--- a/llvm/utils/extract_symbols.py
+++ b/llvm/utils/extract_symbols.py
@@ -53,12 +53,12 @@ def nm_get_symbols(tool, lib):
         # The -P flag displays the size field for symbols only when applicable,
         # so the last field is optional. There's no space after the value field,
         # but \s+ match newline also, so \s+\S* will match the optional size field.
-        match = re.match("^(\S+)\s+[BDGRSTuVW]\s+\S+\s+\S*$", line)
+        match = re.match(r"^(\S+)\s+[BDGRSTuVW]\s+\S+\s+\S*$", line)
         if match:
             yield (match.group(1), True)
         # Look for undefined symbols, which have type U and may or may not
         # (depending on which nm is being used) have value and size.
-        match = re.match("^(\S+)\s+U\s+(\S+\s+\S*)?$", line)
+        match = re.match(r"^(\S+)\s+U\s+(\S+\s+\S*)?$", line)
         if match:
             yield (match.group(1), False)
     process.wait()
@@ -71,7 +71,7 @@ def readobj_is_32bit_windows(tool, lib):
         [tool, "--file-header", lib], universal_newlines=True
     )
     for line in output.splitlines():
-        match = re.match("Format: (\S+)", line)
+        match = re.match(r"Format: (\S+)", line)
         if match:
             return match.group(1) == "COFF-i386"
     return False
@@ -100,10 +100,10 @@ def should_keep_microsoft_symbol(symbol, calling_convention_decoration):
     # An anonymous namespace is mangled as ?A(maybe hex number)@. Any symbol
     # that mentions an anonymous namespace can be discarded, as the anonymous
     # namespace doesn't exist outside of that translation unit.
-    elif re.search("\?A(0x\w+)?@", symbol):
+    elif re.search(r"\?A(0x\w+)?@", symbol):
         return None
     # Skip X86GenMnemonicTables functions, they are not exposed from llvm/include/.
-    elif re.match("\?is[A-Z0-9]*@X86 at llvm", symbol):
+    elif re.match(r"\?is[A-Z0-9]*@X86 at llvm", symbol):
         return None
     # Keep mangled llvm:: and clang:: function symbols. How we detect these is a
     # bit of a mess and imprecise, but that avoids having to completely demangle
@@ -140,7 +140,7 @@ def should_keep_itanium_symbol(symbol, calling_convention_decoration):
     if not symbol.startswith("_") and not symbol.startswith("."):
         return symbol
     # Discard manglings that aren't nested names
-    match = re.match("\.?_Z(T[VTIS])?(N.+)", symbol)
+    match = re.match(r"\.?_Z(T[VTIS])?(N.+)", symbol)
     if not match:
         return None
     # Demangle the name. If the name is too complex then we don't need to keep
@@ -169,7 +169,7 @@ class TooComplexName(Exception):
 # (name, rest of string) pair.
 def parse_itanium_name(arg):
     # Check for a normal name
-    match = re.match("(\d+)(.+)", arg)
+    match = re.match(r"(\d+)(.+)", arg)
     if match:
         n = int(match.group(1))
         name = match.group(1) + match.group(2)[:n]
@@ -196,7 +196,7 @@ def skip_itanium_template(arg):
     tmp = arg[1:]
     while tmp:
         # Check for names
-        match = re.match("(\d+)(.+)", tmp)
+        match = re.match(r"(\d+)(.+)", tmp)
         if match:
             n = int(match.group(1))
             tmp = match.group(2)[n:]
@@ -280,19 +280,19 @@ def parse_microsoft_mangling(arg):
         if arg.startswith("@"):
             return components
         # Check for a simple name
-        match = re.match("(\w+)@(.+)", arg)
+        match = re.match(r"(\w+)@(.+)", arg)
         if match:
             components.append((match.group(1), False))
             arg = match.group(2)
             continue
         # Check for a special function name
-        match = re.match("(\?_?\w)(.+)", arg)
+        match = re.match(r"(\?_?\w)(.+)", arg)
         if match:
             components.append((match.group(1), False))
             arg = match.group(2)
             continue
         # Check for a template name
-        match = re.match("\?\$(\w+)@[^@]+@(.+)", arg)
+        match = re.match(r"\?\$(\w+)@[^@]+@(.+)", arg)
         if match:
             components.append((match.group(1), True))
             arg = match.group(2)
@@ -323,7 +323,7 @@ def get_template_name(sym, mangling):
         if mangling == "microsoft":
             names = parse_microsoft_mangling(sym)
         else:
-            match = re.match("\.?_Z(T[VTIS])?(N.+)", sym)
+            match = re.match(r"\.?_Z(T[VTIS])?(N.+)", sym)
             if match:
                 names, _ = parse_itanium_nested_name(match.group(2))
             else:
diff --git a/llvm/utils/extract_vplan.py b/llvm/utils/extract_vplan.py
index cff6f5074d7716..96b9fd1b9a936b 100755
--- a/llvm/utils/extract_vplan.py
+++ b/llvm/utils/extract_vplan.py
@@ -24,7 +24,7 @@
 matches = re.findall(pattern, sys.stdin.read())
 
 for vplan in matches:
-    m = re.search("graph \[.+(VF=.+,UF.+)", vplan)
+    m = re.search(r"graph \[.+(VF=.+,UF.+)", vplan)
     if not m:
         raise ValueError("Can't get the right VPlan name")
     name = re.sub("[^a-zA-Z0-9]", "", m.group(1))
diff --git a/llvm/utils/git/github-automation.py b/llvm/utils/git/github-automation.py
index da467f46b4dd31..ef6032c524c285 100755
--- a/llvm/utils/git/github-automation.py
+++ b/llvm/utils/git/github-automation.py
@@ -53,9 +53,9 @@ def escape_description(str):
     # https://github.com/github/markup/issues/1168#issuecomment-494946168
     str = html.escape(str, False)
     # '@' followed by alphanum is a user name
-    str = re.sub("@(?=\w)", "@<!-- -->", str)
+    str = re.sub(r"@(?=\w)", "@<!-- -->", str)
     # '#' followed by digits is considered an issue number
-    str = re.sub("#(?=\d)", "#<!-- -->", str)
+    str = re.sub(r"#(?=\d)", "#<!-- -->", str)
     return str
 
 
@@ -474,7 +474,7 @@ def issue_remove_cherry_pick_failed_label(self):
     def get_main_commit(self, cherry_pick_sha: str) -> github.Commit.Commit:
         commit = self.repo.get_commit(cherry_pick_sha)
         message = commit.commit.message
-        m = re.search("\(cherry picked from commit ([0-9a-f]+)\)", message)
+        m = re.search(r"\(cherry picked from commit ([0-9a-f]+)\)", message)
         if not m:
             return None
         return self.repo.get_commit(m.group(1))
diff --git a/llvm/utils/indirect_calls.py b/llvm/utils/indirect_calls.py
index 2bdabc8c4d74f1..c96d780d9faa1b 100755
--- a/llvm/utils/indirect_calls.py
+++ b/llvm/utils/indirect_calls.py
@@ -33,7 +33,7 @@ def look_for_indirect(file):
     for line in stdout.splitlines():
         if line.startswith(" ") == False:
             function = line
-        result = re.search("(call|jmp).*\*", line)
+        result = re.search(r"(call|jmp).*\*", line)
         if result != None:
             # TODO: Perhaps use cxxfilt to demangle functions?
             print(function)
diff --git a/llvm/utils/relative_lines.py b/llvm/utils/relative_lines.py
index 86b190d5ea1824..48ceaa86b2ce3f 100755
--- a/llvm/utils/relative_lines.py
+++ b/llvm/utils/relative_lines.py
@@ -14,7 +14,7 @@
 line number reference.
 """
 
-USAGE = """Example usage:
+USAGE = r"""Example usage:
     find -type f clang/test/CodeCompletion | grep -v /Inputs/ | \\
     xargs relative_lines.py --dry-run --verbose --near=100 \\
     --pattern='-code-completion-at[ =]%s:(\d+)' \\
diff --git a/llvm/utils/update_test_prefix.py b/llvm/utils/update_test_prefix.py
index 434dc84fa4fc03..74cea41dab3816 100755
--- a/llvm/utils/update_test_prefix.py
+++ b/llvm/utils/update_test_prefix.py
@@ -17,13 +17,13 @@ def remove_prefix(i, d=0):
             p = r.group(1)
             s = re.sub("=" + p + ",", "=", s)
             s = re.sub("," + p + "([, \n])", "\\1", s)
-            s = re.sub("\s+-?-check-prefix=" + p + "([ \n])", "\\1", s)
+            s = re.sub(r"\s+-?-check-prefix=" + p + "([ \n])", r"\1", s)
         else:
             s = re.sub(
-                "-?-check-prefixes=([\w-]+)(\Z|[ \t\n])", "--check-prefix=\\1\\2", s
+                r"-?-check-prefixes=([\w-]+)(\Z|[ \t\n])", r"--check-prefix=\1\2", s
             )
             t = re.search(
-                "-?-check-(?:prefix|prefixes)=([^ ]+)\s+-?-check-(?:prefix|prefixes)=([^ ]+)",
+                r"-?-check-(?:prefix|prefixes)=([^ ]+)\s+-?-check-(?:prefix|prefixes)=([^ ]+)",
                 s,
             )
             while t:
@@ -31,10 +31,10 @@ def remove_prefix(i, d=0):
                     t.group(), "--check-prefixes=" + t.group(1) + "," + t.group(2), s
                 )
                 t = re.search(
-                    "-?-check-(?:prefix|prefixes)=([^ ]+)\s+-?-check-(?:prefix|prefixes)=([^ ]+)",
+                    r"-?-check-(?:prefix|prefixes)=([^ ]+)\s+-?-check-(?:prefix|prefixes)=([^ ]+)",
                     s,
                 )
-            s = re.sub("\s+-?-check-prefix=CHECK[ \t]*\n", "\n", s)
+            s = re.sub(r"\s+-?-check-prefix=CHECK[ \t]*\n", "\n", s)
         f.truncate(0)
         f.seek(0)
         f.write(s)
diff --git a/mlir/utils/spirv/gen_spirv_dialect.py b/mlir/utils/spirv/gen_spirv_dialect.py
index 78c1022428d8a1..6d82c012158196 100755
--- a/mlir/utils/spirv/gen_spirv_dialect.py
+++ b/mlir/utils/spirv/gen_spirv_dialect.py
@@ -538,7 +538,7 @@ def gen_instr_coverage_report(path, instructions):
 
     prefix = "def SPIRV_OC_"
     existing_opcodes = [
-        k[len(prefix) :] for k in re.findall(prefix + "\w+", content[1])
+        k[len(prefix) :] for k in re.findall(prefix + r"\w+", content[1])
     ]
     existing_instructions = list(
         filter(lambda inst: (inst["opname"] in existing_opcodes), instructions)
@@ -597,7 +597,7 @@ def update_td_opcodes(path, instructions, filter_list):
     # Extend opcode list with existing list
     prefix = "def SPIRV_OC_"
     existing_opcodes = [
-        k[len(prefix) :] for k in re.findall(prefix + "\w+", content[1])
+        k[len(prefix) :] for k in re.findall(prefix + r"\w+", content[1])
     ]
     filter_list.extend(existing_opcodes)
     filter_list = list(set(filter_list))
@@ -644,7 +644,7 @@ def update_td_enum_attrs(path, operand_kinds, filter_list):
     suffix = "Attr"
     existing_kinds = [
         k[len(prefix) : -len(suffix)]
-        for k in re.findall(prefix + "\w+" + suffix, content[1])
+        for k in re.findall(prefix + r"\w+" + suffix, content[1])
     ]
     filter_list.extend(existing_kinds)
 
@@ -971,7 +971,7 @@ def extract_td_op_info(op_def):
     suffix = "Op"
     opname = [
         o[len(prefix) : -len(suffix)]
-        for o in re.findall(prefix + "\w+" + suffix, op_def)
+        for o in re.findall(prefix + r"\w+" + suffix, op_def)
     ]
     assert len(opname) == 1, "more than one ops in the same section!"
     opname = opname[0]
@@ -979,7 +979,7 @@ def extract_td_op_info(op_def):
     # Get instruction category
     prefix = "SPIRV_"
     inst_category = [
-        o[len(prefix) :] for o in re.findall(prefix + "\w+Op", op_def.split(":", 1)[1])
+        o[len(prefix) :] for o in re.findall(prefix + r"\w+Op", op_def.split(":", 1)[1])
     ]
     assert len(inst_category) <= 1, "more than one ops in the same section!"
     inst_category = inst_category[0] if len(inst_category) == 1 else "Op"
diff --git a/polly/test/update_check.py b/polly/test/update_check.py
index 88d95c247c0630..1dd3d3ebf39c09 100644
--- a/polly/test/update_check.py
+++ b/polly/test/update_check.py
@@ -222,7 +222,7 @@ def classyfier2(lines):
         line = i.__next__()
 
 
-replrepl = {"{{": "{{[{][{]}}", "}}": "{{[}][}]}}", "[[": "{{\[\[}}", "]]": "{{\]\]}}"}
+replrepl = {"{{": "{{[{][{]}}", "}}": "{{[}][}]}}", "[[": r"{{\[\[}}", "]]": r"{{\]\]}}"}
 replre = re.compile("|".join(re.escape(k) for k in replrepl.keys()))
 
 
@@ -452,7 +452,7 @@ def main():
     checkre = re.compile(
         r"^\s*\;\s*("
         + "|".join([re.escape(s) for s in checkprefixes])
-        + ")(\-NEXT|\-DAG|\-NOT|\-LABEL|\-SAME)?\s*\:"
+        + r")(\-NEXT|\-DAG|\-NOT|\-LABEL|\-SAME)?\s*\:"
     )
     firstcheckline = None
     firstnoncommentline = None



More information about the Mlir-commits mailing list