diff --git a/fsl/utils/filetree/parse.py b/fsl/utils/filetree/parse.py
index 409a358bfdf9b9d707bc838b186742366054d51e..acfa68d17b4b3104e6de1f71d4307625bf1001f9 100644
--- a/fsl/utils/filetree/parse.py
+++ b/fsl/utils/filetree/parse.py
@@ -77,7 +77,7 @@ def read_line(line: str) -> Tuple[int, PurePath, str]:
     """
     Parses line from the tree file
 
-    :param line: input line from a \*.tree file
+    :param line: input line from a ``*.tree`` file
     :return: Tuple with:
 
         - number of spaces in front of the name
@@ -105,7 +105,7 @@ def read_subtree_line(line: str, directory: str) -> Tuple[int, "filetree.FileTre
     """
     Parses the line defining a sub_tree
 
-    :param line: input line from a \*.tree file
+    :param line: input line from a ``*.tree`` file
     :param directory: containing directory
     :return: Tuple with
 
diff --git a/fsl/utils/filetree/utils.py b/fsl/utils/filetree/utils.py
index 0b82929491c9a8994d252f24704f66dff87f8411..11464e93570660dd27e1fa9103a3b4ff3e731f03 100644
--- a/fsl/utils/filetree/utils.py
+++ b/fsl/utils/filetree/utils.py
@@ -98,7 +98,7 @@ def resolve_optionals(text):
         else:
             return ''
 
-    res = [resolve_single_optional(text) for text in re.split('(\[.*?\])', text)]
+    res = [resolve_single_optional(text) for text in re.split(r'(\[.*?\])', text)]
     return ''.join(res)
 
 
@@ -109,7 +109,7 @@ def find_variables(template):
     :param template: full template
     :return: sequence of variables
     """
-    return tuple(var.split(':')[0] for var in re.findall("\{(.*?)\}", template))
+    return tuple(var.split(':')[0] for var in re.findall(r"\{(.*?)\}", template))
 
 
 def optional_variables(template):
@@ -121,7 +121,7 @@ def optional_variables(template):
     """
     include = set()
     exclude = set()
-    for text in re.split('(\[.*?\])', template):
+    for text in re.split(r'(\[.*?\])', template):
         if len(text) == 0:
             continue
         variables = find_variables(text)
@@ -152,13 +152,13 @@ def extract_variables(template, filename, known_vars=None):
         sub_re = resolve_optionals(fill_known(
                 template,
                 dict(
-                        **{var: '(\S+)' for k, var in zip(keep, optional) if k},
-                        **{var: '(\S+)' for var in remaining.difference(optional)}
+                        **{var: r'(\S+)' for k, var in zip(keep, optional) if k},
+                        **{var: r'(\S+)' for var in remaining.difference(optional)}
                 )
         ))
         while '//' in sub_re:
             sub_re = sub_re.replace('//', '/')
-        sub_re = sub_re.replace('.', '\.')
+        sub_re = sub_re.replace('.', r'\.')
         if re.match(sub_re, filename) is None:
             continue