diff --git a/matlab/missing/contains/contains.m b/matlab/missing/contains/contains.m
index 858fddb20f683fbf4bd3ab54e0ad4a8322aa1e11..d14cd5daa691645efa92eac2de747d34f0c408e3 100644
--- a/matlab/missing/contains/contains.m
+++ b/matlab/missing/contains/contains.m
@@ -12,7 +12,7 @@ function tf = contains(string, pattern, varargin)
 % OUTPUT
 % - tf   [logical]
 %
-% Copyright © 2019 Dynare Team
+% Copyright © 2019-2024 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -62,9 +62,9 @@ end
 
 tf = false(size(string));
 for ii = 1:numel(pattern)
-    idx = regexp(string, pattern{ii});
+    idx = regexp(string, regexptranslate('escape', pattern{ii}));
     for jj = 1:numel(string)
         tf(jj) = tf(jj) || ~isempty(idx{jj});
     end
 end
-end
\ No newline at end of file
+end