diff --git a/.rubocop_todo/performance/constant_regexp.yml b/.rubocop_todo/performance/constant_regexp.yml
deleted file mode 100644
index 23d03ced8d7331e92951ee90367e4f583395dccf..0000000000000000000000000000000000000000
--- a/.rubocop_todo/performance/constant_regexp.yml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# Cop supports --auto-correct.
-Performance/ConstantRegexp:
-  Exclude:
-    - 'app/models/commit.rb'
-    - 'app/models/commit_range.rb'
-    - 'app/models/custom_emoji.rb'
-    - 'app/models/gpg_key.rb'
-    - 'app/models/merge_request.rb'
-    - 'app/models/packages/package.rb'
-    - 'app/models/project.rb'
-    - 'app/models/wiki.rb'
-    - 'ee/app/models/ee/epic.rb'
-    - 'lib/banzai/filter/custom_emoji_filter.rb'
-    - 'lib/gitlab/cleanup/project_uploads.rb'
-    - 'lib/gitlab/database/reindexing/reindex_concurrently.rb'
-    - 'lib/gitlab/dependency_linker/base_linker.rb'
-    - 'lib/gitlab/dependency_linker/composer_json_linker.rb'
-    - 'lib/gitlab/dependency_linker/godeps_json_linker.rb'
-    - 'lib/gitlab/dependency_linker/podspec_linker.rb'
-    - 'lib/gitlab/git.rb'
-    - 'lib/gitlab/job_waiter.rb'
-    - 'lib/gitlab/metrics/dashboard/url.rb'
-    - 'lib/gitlab/path_regex.rb'
-    - 'lib/gitlab/regex.rb'
-    - 'scripts/perf/query_limiting_report.rb'
-    - 'scripts/validate_migration_schema'
-    - 'spec/features/users/email_verification_on_login_spec.rb'
-    - 'spec/models/concerns/token_authenticatable_spec.rb'
-    - 'spec/services/notes/copy_service_spec.rb'
diff --git a/app/models/commit.rb b/app/models/commit.rb
index ca18cb50e02da3e59c7e9686af49a83ea543969a..bd60f02b532610e0b2294a19b2037d5af6180b46 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -190,7 +190,7 @@ def self.reference_pattern
 
   def self.link_reference_pattern
     @link_reference_pattern ||=
-      super("commit", /(?<commit>#{COMMIT_SHA_PATTERN})?(\.(?<extension>#{LINK_EXTENSION_PATTERN}))?/)
+      super("commit", /(?<commit>#{COMMIT_SHA_PATTERN})?(\.(?<extension>#{LINK_EXTENSION_PATTERN}))?/o)
   end
 
   def to_reference(from = nil, full: false)
diff --git a/app/models/commit_range.rb b/app/models/commit_range.rb
index 08f1eb3731e73dfe9fea48317cd9eed27537188d..e2f0de52bc9e1e008b05c8ad45ea5affef3dc575 100644
--- a/app/models/commit_range.rb
+++ b/app/models/commit_range.rb
@@ -50,7 +50,7 @@ def self.reference_pattern
   end
 
   def self.link_reference_pattern
-    @link_reference_pattern ||= super("compare", /(?<commit_range>#{PATTERN})/)
+    @link_reference_pattern ||= super("compare", /(?<commit_range>#{PATTERN})/o)
   end
 
   # Initialize a CommitRange
@@ -64,7 +64,7 @@ def initialize(range_string, project)
 
     range_string = range_string.strip
 
-    unless range_string =~ /\A#{PATTERN}\z/
+    unless range_string =~ /\A#{PATTERN}\z/o
       raise ArgumentError, "invalid CommitRange string format: #{range_string}"
     end
 
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index 09fbb93525b14fa483f4bfe288d1f79270a30374..625d68925c6c5709811e63a5912c88328da86a36 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -22,7 +22,7 @@ class CustomEmoji < ApplicationRecord
     presence: true,
     length: { maximum: 36 },
 
-    format: { with: /\A#{NAME_REGEXP}\z/ }
+    format: { with: /\A#{NAME_REGEXP}\z/o }
 
   scope :by_name, -> (names) { where(name: names) }
 
diff --git a/app/models/gpg_key.rb b/app/models/gpg_key.rb
index a56e28859c9c893377440192c18a7f99549ad920..2db074e733e4aa14247081dd220fceb0841844bd 100644
--- a/app/models/gpg_key.rb
+++ b/app/models/gpg_key.rb
@@ -21,7 +21,7 @@ class GpgKey < ApplicationRecord
     presence: true,
     uniqueness: true,
     format: {
-      with: /\A#{KEY_PREFIX}((?!#{KEY_PREFIX})(?!#{KEY_SUFFIX}).)+#{KEY_SUFFIX}\Z/m,
+      with: /\A#{KEY_PREFIX}((?!#{KEY_PREFIX})(?!#{KEY_SUFFIX}).)+#{KEY_SUFFIX}\Z/mo,
       message: "is invalid. A valid public GPG key begins with '#{KEY_PREFIX}' and ends with '#{KEY_SUFFIX}'"
     }
 
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index cd957f445fd75fe57eed7000fd4930bf4dd9a9a4..47dd0175705e0983102b1d9c2999e9395016d585 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -1500,7 +1500,7 @@ def self.merge_request_ref?(ref)
   end
 
   def self.merge_train_ref?(ref)
-    %r{\Arefs/#{Repository::REF_MERGE_REQUEST}/\d+/train\z}.match?(ref)
+    %r{\Arefs/#{Repository::REF_MERGE_REQUEST}/\d+/train\z}o.match?(ref)
   end
 
   def in_locked_state
diff --git a/app/models/packages/package.rb b/app/models/packages/package.rb
index 90a1bb4bc69dea5dfcaed9042bd64b27064fc72e..7d2d34170faa110a05aa8f30a56a6667a6c0ec2c 100644
--- a/app/models/packages/package.rb
+++ b/app/models/packages/package.rb
@@ -327,7 +327,7 @@ def mark_package_files_for_destruction
   def normalized_pypi_name
     return name unless pypi?
 
-    name.gsub(/#{Gitlab::Regex::Packages::PYPI_NORMALIZED_NAME_REGEX_STRING}/, '-').downcase
+    name.gsub(/#{Gitlab::Regex::Packages::PYPI_NORMALIZED_NAME_REGEX_STRING}/o, '-').downcase
   end
 
   private
diff --git a/app/models/project.rb b/app/models/project.rb
index 130ab41baa6cc5f98bd7103617d539efa37ee7bc..bf97ffc423c7ec1dda927eadf4514128d60def7c 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -814,7 +814,7 @@ def reference_pattern
         (?<!#{Gitlab::PathRegex::PATH_START_CHAR})
         ((?<namespace>#{Gitlab::PathRegex::FULL_NAMESPACE_FORMAT_REGEX})\/)?
         (?<project>#{Gitlab::PathRegex::PROJECT_PATH_FORMAT_REGEX})
-      }x
+      }xo
     end
 
     def reference_postfix
diff --git a/app/models/wiki.rb b/app/models/wiki.rb
index c9cb3b0b79607ac87e16e14bd27ccee14481ba1f..97a21c6260c20cfa950a0e385f13ee9e33e9a694 100644
--- a/app/models/wiki.rb
+++ b/app/models/wiki.rb
@@ -335,7 +335,7 @@ def default_branch
   end
 
   def wiki_base_path
-    web_url(only_path: true).sub(%r{/#{Wiki::HOMEPAGE}\z}, '')
+    web_url(only_path: true).sub(%r{/#{Wiki::HOMEPAGE}\z}o, '')
   end
 
   # Callbacks for synchronous processing after wiki changes.
diff --git a/ee/app/models/ee/epic.rb b/ee/app/models/ee/epic.rb
index 808528c89fdf9cb8ee5a628b1670ebc459fcc317..7d4d6bd3536fc5c1e7645e19c49f21ee8819f1f1 100644
--- a/ee/app/models/ee/epic.rb
+++ b/ee/app/models/ee/epic.rb
@@ -243,7 +243,7 @@ def reference_pattern
           group_regexp = %r{
             (?<!\w)
             (?<group>#{::Gitlab::PathRegex::FULL_NAMESPACE_FORMAT_REGEX})
-          }x
+          }xo
           %r{
             (#{group_regexp})?
             (?:#{combined_prefix})#{::Gitlab::Regex.epic}
diff --git a/lib/banzai/filter/custom_emoji_filter.rb b/lib/banzai/filter/custom_emoji_filter.rb
index ae95c7f66b641844436ff6d5e5603234002fae6b..b589d2645263194d728cd804cc7fdbf112654211 100644
--- a/lib/banzai/filter/custom_emoji_filter.rb
+++ b/lib/banzai/filter/custom_emoji_filter.rb
@@ -29,7 +29,7 @@ def custom_emoji_pattern
         @emoji_pattern ||=
           /(?<=[^[:alnum:]:]|\n|^)
           :(#{CustomEmoji::NAME_REGEXP}):
-          (?=[^[:alnum:]:]|$)/x
+          (?=[^[:alnum:]:]|$)/xo
       end
 
       def custom_emoji_name_element_filter(text)
@@ -58,7 +58,7 @@ def resource_parent
       end
 
       def custom_emoji_candidates
-        doc.to_html.scan(/:(#{CustomEmoji::NAME_REGEXP}):/).flatten
+        doc.to_html.scan(/:(#{CustomEmoji::NAME_REGEXP}):/o).flatten
       end
 
       def all_custom_emoji
diff --git a/lib/gitlab/cleanup/project_uploads.rb b/lib/gitlab/cleanup/project_uploads.rb
index ed4b363416ce729210f60a0adc6ae7d1ac260cec..7f24b2f78b0d651d3ec9e4f0d90bc362f07f7f61 100644
--- a/lib/gitlab/cleanup/project_uploads.rb
+++ b/lib/gitlab/cleanup/project_uploads.rb
@@ -56,7 +56,7 @@ def find_correct_path(upload_path)
       # rubocop: enable CodeReuse/ActiveRecord
 
       def move_to_lost_and_found(path, dry_run)
-        new_path = path.sub(/\A#{ProjectUploadFileFinder::ABSOLUTE_UPLOAD_DIR}/, LOST_AND_FOUND)
+        new_path = path.sub(/\A#{ProjectUploadFileFinder::ABSOLUTE_UPLOAD_DIR}/o, LOST_AND_FOUND)
 
         move(path, new_path, 'move to lost and found', dry_run)
       end
diff --git a/lib/gitlab/database/reindexing/reindex_concurrently.rb b/lib/gitlab/database/reindexing/reindex_concurrently.rb
index 152935bd7349e2f8cac8600de9842330cc9fcaf3..60fa4deda3904b98ae80928685f9266b6508926d 100644
--- a/lib/gitlab/database/reindexing/reindex_concurrently.rb
+++ b/lib/gitlab/database/reindexing/reindex_concurrently.rb
@@ -20,7 +20,7 @@ def initialize(index, logger: Gitlab::AppLogger)
 
         def perform
           raise ReindexError, 'indexes serving an exclusion constraint are currently not supported' if index.exclusion?
-          raise ReindexError, 'index is a left-over temporary index from a previous reindexing run' if index.name =~ /#{TEMPORARY_INDEX_PATTERN}/
+          raise ReindexError, 'index is a left-over temporary index from a previous reindexing run' if index.name =~ /#{TEMPORARY_INDEX_PATTERN}/o
 
           # Expression indexes require additional statistics in `pg_statistic`:
           # select * from pg_statistic where starelid = (select oid from pg_class where relname = 'some_index');
@@ -81,10 +81,10 @@ def cleanup_dangling_indexes
             # Example lingering index name: some_index_ccnew1
 
             # Example prefix: 'some_index'
-            prefix = lingering_index.name.gsub(/#{TEMPORARY_INDEX_PATTERN}/, '')
+            prefix = lingering_index.name.gsub(/#{TEMPORARY_INDEX_PATTERN}/o, '')
 
             # Example suffix: '_ccnew1'
-            suffix = lingering_index.name.match(/#{TEMPORARY_INDEX_PATTERN}/)[0]
+            suffix = lingering_index.name.match(/#{TEMPORARY_INDEX_PATTERN}/o)[0]
 
             # Only remove if the lingering index name could have been chosen
             # as a result of a REINDEX operation (considering that PostgreSQL
diff --git a/lib/gitlab/dependency_linker/base_linker.rb b/lib/gitlab/dependency_linker/base_linker.rb
index 76855f2950d8196ec158c94a3c2a0b277239b941..6d114de8ae8732c4721a58a394c238d305164b30 100644
--- a/lib/gitlab/dependency_linker/base_linker.rb
+++ b/lib/gitlab/dependency_linker/base_linker.rb
@@ -34,9 +34,9 @@ def external_url(name, external_ref)
         return if external_ref =~ GIT_INVALID_URL_REGEX
 
         case external_ref
-        when /\A#{URL_REGEX}\z/
+        when /\A#{URL_REGEX}\z/o
           external_ref
-        when /\A#{REPO_REGEX}\z/
+        when /\A#{REPO_REGEX}\z/o
           github_url(external_ref)
         else
           package_url(name)
diff --git a/lib/gitlab/dependency_linker/composer_json_linker.rb b/lib/gitlab/dependency_linker/composer_json_linker.rb
index 4b8862b31ee6ecdf37820d258c44cd9518b3984d..965ed8bb95e0154e6535e49feb6d0781afb6149f 100644
--- a/lib/gitlab/dependency_linker/composer_json_linker.rb
+++ b/lib/gitlab/dependency_linker/composer_json_linker.rb
@@ -13,7 +13,7 @@ def link_packages
       end
 
       def package_url(name)
-        "https://packagist.org/packages/#{name}" if name =~ /\A#{REPO_REGEX}\z/
+        "https://packagist.org/packages/#{name}" if name =~ /\A#{REPO_REGEX}\z/o
       end
     end
   end
diff --git a/lib/gitlab/dependency_linker/godeps_json_linker.rb b/lib/gitlab/dependency_linker/godeps_json_linker.rb
index 9166e9091aca486a3f8955ac55f590ba76355770..049a807b760c1ea300de91fb74f301d93d5702cb 100644
--- a/lib/gitlab/dependency_linker/godeps_json_linker.rb
+++ b/lib/gitlab/dependency_linker/godeps_json_linker.rb
@@ -12,10 +12,10 @@ class GodepsJsonLinker < JsonLinker
       def link_dependencies
         link_json('ImportPath') do |path|
           case path
-          when %r{\A(?<repo>github\.com/#{REPO_REGEX})/(?<path>.+)\z}
+          when %r{\A(?<repo>github\.com/#{REPO_REGEX})/(?<path>.+)\z}o
             "https://#{$~[:repo]}/tree/master/#{$~[:path]}"
-          when %r{\A(?<repo>gitlab\.com/#{NESTED_REPO_REGEX})\.git/(?<path>.+)\z},
-            %r{\A(?<repo>gitlab\.com/#{REPO_REGEX})/(?<path>.+)\z}
+          when %r{\A(?<repo>gitlab\.com/#{NESTED_REPO_REGEX})\.git/(?<path>.+)\z}o,
+            %r{\A(?<repo>gitlab\.com/#{REPO_REGEX})/(?<path>.+)\z}o
 
             "https://#{$~[:repo]}/-/tree/master/#{$~[:path]}"
           when /\Agolang\.org/
diff --git a/lib/gitlab/dependency_linker/podspec_linker.rb b/lib/gitlab/dependency_linker/podspec_linker.rb
index 14abd3999c425d62bda97d2184f11175796f7478..f6da17efff456e8bb4b9c5c4d88570499639834c 100644
--- a/lib/gitlab/dependency_linker/podspec_linker.rb
+++ b/lib/gitlab/dependency_linker/podspec_linker.rb
@@ -14,10 +14,10 @@ class PodspecLinker < MethodLinker
       def link_dependencies
         link_method_call('homepage', URL_REGEX, &:itself)
 
-        link_regex(/(git:|:git\s*=>)\s*['"](?<name>#{URL_REGEX})['"]/, &:itself)
+        link_regex(/(git:|:git\s*=>)\s*['"](?<name>#{URL_REGEX})['"]/o, &:itself)
 
         link_method_call('license', &method(:license_url))
-        link_regex(/license\s*=\s*\{\s*(type:|:type\s*=>)\s*#{STRING_REGEX}/, &method(:license_url))
+        link_regex(/license\s*=\s*\{\s*(type:|:type\s*=>)\s*#{STRING_REGEX}/o, &method(:license_url))
 
         link_method_call('dependency', &method(:package_url))
       end
diff --git a/lib/gitlab/git.rb b/lib/gitlab/git.rb
index 882bd57eb1dad56496c3fa7c2efeefb9f9461b5d..4b9f2ababc8c9e4eab4cedcc1487990dae2a2cc8 100644
--- a/lib/gitlab/git.rb
+++ b/lib/gitlab/git.rb
@@ -47,11 +47,11 @@ def tag_name(ref)
       end
 
       def tag_ref?(ref)
-        ref =~ /^#{TAG_REF_PREFIX}.+/
+        ref =~ /^#{TAG_REF_PREFIX}.+/o
       end
 
       def branch_ref?(ref)
-        ref =~ /^#{BRANCH_REF_PREFIX}.+/
+        ref =~ /^#{BRANCH_REF_PREFIX}.+/o
       end
 
       def blank_ref?(ref)
diff --git a/lib/gitlab/job_waiter.rb b/lib/gitlab/job_waiter.rb
index 2cede524cac94408457d94b8ed24308228559d0c..52234b50a1f54eb8deb495a0db676365008f4c95 100644
--- a/lib/gitlab/job_waiter.rb
+++ b/lib/gitlab/job_waiter.rb
@@ -35,7 +35,7 @@ def self.notify(key, jid)
     end
 
     def self.key?(key)
-      key.is_a?(String) && key =~ /\A#{KEY_PREFIX}:\h{8}-\h{4}-\h{4}-\h{4}-\h{12}\z/
+      key.is_a?(String) && key =~ /\A#{KEY_PREFIX}:\h{8}-\h{4}-\h{4}-\h{4}-\h{12}\z/o
     end
 
     attr_reader :key, :finished, :worker_label
diff --git a/lib/gitlab/metrics/dashboard/url.rb b/lib/gitlab/metrics/dashboard/url.rb
index 6dcc73c0f6ac8b74e9b7b65c5c00db959ccd8f6f..d4f779ad79d85d5ff5c56dcac3e16deb47399a30 100644
--- a/lib/gitlab/metrics/dashboard/url.rb
+++ b/lib/gitlab/metrics/dashboard/url.rb
@@ -42,7 +42,7 @@ def grafana_regex
                   #{DASH_PATTERN}?
                   /grafana
                   /metrics_dashboard
-                }x
+                }xo
               )
             end
           end
@@ -64,7 +64,7 @@ def clusters_regex
                   /(?<cluster_id>\d+)
                   /?
                   ( (/metrics) | ( /metrics_dashboard\.json ) )?
-                }x
+                }xo
               )
             end
           end
@@ -82,7 +82,7 @@ def alert_regex
                   /alerts
                   /(?<alert>\d+)
                   /metrics_dashboard(\.json)?
-                }x
+                }xo
               )
             end
           end
@@ -112,7 +112,7 @@ def environment_metrics_regex
               /environments
               /(?<environment>\d+)
               /(metrics_dashboard|metrics)
-            }x
+            }xo
           end
 
           def non_environment_metrics_regex
@@ -125,7 +125,7 @@ def non_environment_metrics_regex
                 environment=(?<environment>\d+)
                 .*
               )
-            }x
+            }xo
           end
 
           def regex_for_project_metrics(path_suffix_pattern)
diff --git a/lib/gitlab/path_regex.rb b/lib/gitlab/path_regex.rb
index b05d7160a4b00aecd9a46fbe3dead65e90b635c6..b0804c2ff661197bf70ca70edd7c82ce4509e88f 100644
--- a/lib/gitlab/path_regex.rb
+++ b/lib/gitlab/path_regex.rb
@@ -204,7 +204,7 @@ def full_project_git_path_regex
     end
 
     def namespace_format_regex
-      @namespace_format_regex ||= /\A#{NAMESPACE_FORMAT_REGEX}\z/.freeze
+      @namespace_format_regex ||= /\A#{NAMESPACE_FORMAT_REGEX}\z/o.freeze
     end
 
     def namespace_format_message
@@ -213,7 +213,7 @@ def namespace_format_message
     end
 
     def project_path_format_regex
-      @project_path_format_regex ||= /\A#{PROJECT_PATH_FORMAT_REGEX}\z/.freeze
+      @project_path_format_regex ||= /\A#{PROJECT_PATH_FORMAT_REGEX}\z/o.freeze
     end
 
     def project_path_format_message
diff --git a/lib/gitlab/regex.rb b/lib/gitlab/regex.rb
index 0534f89015298c0eb3dd113da3a646a6fc13bc33..aacf8cadbeee3bdeb30cd9a43b2d0ab6d69ce69c 100644
--- a/lib/gitlab/regex.rb
+++ b/lib/gitlab/regex.rb
@@ -70,7 +70,7 @@ def maven_app_group_regex
       end
 
       def npm_package_name_regex
-        @npm_package_name_regex ||= %r{\A(?:@(#{Gitlab::PathRegex::NAMESPACE_FORMAT_REGEX})/)?[-+\.\_a-zA-Z0-9]+\z}
+        @npm_package_name_regex ||= %r{\A(?:@(#{Gitlab::PathRegex::NAMESPACE_FORMAT_REGEX})/)?[-+\.\_a-zA-Z0-9]+\z}o
       end
 
       def nuget_package_name_regex
@@ -128,15 +128,15 @@ def debian_version_regex
       def debian_architecture_regex
         # See official parser: https://git.dpkg.org/cgit/dpkg/dpkg.git/tree/lib/dpkg/arch.c?id=9e0c88ec09475f4d1addde9cdba1ad7849720356#n43
         # But we limit to lower case
-        @debian_architecture_regex ||= %r{\A#{::Packages::Debian::ARCHITECTURE_REGEX}\z}.freeze
+        @debian_architecture_regex ||= %r{\A#{::Packages::Debian::ARCHITECTURE_REGEX}\z}o.freeze
       end
 
       def debian_distribution_regex
-        @debian_distribution_regex ||= %r{\A#{::Packages::Debian::DISTRIBUTION_REGEX}\z}i.freeze
+        @debian_distribution_regex ||= %r{\A#{::Packages::Debian::DISTRIBUTION_REGEX}\z}io.freeze
       end
 
       def debian_component_regex
-        @debian_component_regex ||= %r{\A#{::Packages::Debian::COMPONENT_REGEX}\z}.freeze
+        @debian_component_regex ||= %r{\A#{::Packages::Debian::COMPONENT_REGEX}\z}o.freeze
       end
 
       def helm_channel_regex
diff --git a/scripts/perf/query_limiting_report.rb b/scripts/perf/query_limiting_report.rb
index 2f263eeb5670379cd616f28a6172dad41b972df6..89abc1b301ba3110a58c8c8ea29a97086400c736 100755
--- a/scripts/perf/query_limiting_report.rb
+++ b/scripts/perf/query_limiting_report.rb
@@ -124,7 +124,7 @@ def find_code_lines
 
       file_lines.each_index do |index|
         line = file_lines[index]
-        if line =~ /#{CODE_LINES_SEARCH_STRING}/
+        if line =~ /#{CODE_LINES_SEARCH_STRING}/o
           issue_iid = line.slice(%r{issues/(\d+)\D}, 1)
           line_number = index + 1
           code_line = {
diff --git a/scripts/validate_migration_schema b/scripts/validate_migration_schema
index dded5c6492745e7cee8e415cf35d5b11dffea32c..5c38985184403d15a33e1ee2ac2df6de0a48d7c6 100755
--- a/scripts/validate_migration_schema
+++ b/scripts/validate_migration_schema
@@ -87,7 +87,7 @@ class MigrationSchemaValidator
 
   def find_migration_version(filename)
     file_basename = File.basename(filename)
-    version_match = /\A(?<version>\d{#{VERSION_DIGITS}})_/.match(file_basename)
+    version_match = /\A(?<version>\d{#{VERSION_DIGITS}})_/o.match(file_basename)
 
     die "#{filename} has an invalid migration version" if version_match.nil?
 
diff --git a/spec/features/users/email_verification_on_login_spec.rb b/spec/features/users/email_verification_on_login_spec.rb
index 0833f7f6f8ea4ba82b911b5384013a527a93a437..c8301c2fc91568b99b3d27f47e3f8ea161802c46 100644
--- a/spec/features/users/email_verification_on_login_spec.rb
+++ b/spec/features/users/email_verification_on_login_spec.rb
@@ -335,7 +335,7 @@ def expect_instructions_email_and_extract_code
     mail = find_email_for(user)
     expect(mail.to).to match_array([user.email])
     expect(mail.subject).to eq('Verify your identity')
-    code = mail.body.parts.first.to_s[/\d{#{VerifiesWithEmail::TOKEN_LENGTH}}/]
+    code = mail.body.parts.first.to_s[/\d{#{VerifiesWithEmail::TOKEN_LENGTH}}/o]
     reset_delivered_emails!
     code
   end
diff --git a/spec/models/concerns/token_authenticatable_spec.rb b/spec/models/concerns/token_authenticatable_spec.rb
index a2ce02f46611cdacc990e61010fbe63bf170b681..675315cfa5a14450a926a95816a6eca22d83d528 100644
--- a/spec/models/concerns/token_authenticatable_spec.rb
+++ b/spec/models/concerns/token_authenticatable_spec.rb
@@ -442,7 +442,7 @@
 
     context 'token is not set' do
       it 'generates a new token' do
-        expect(subject).to match(/^#{RunnersTokenPrefixable::RUNNERS_TOKEN_PREFIX}/)
+        expect(subject).to match(/^#{RunnersTokenPrefixable::RUNNERS_TOKEN_PREFIX}/o)
         expect(instance).not_to be_persisted
       end
     end
@@ -453,7 +453,7 @@
       end
 
       it 'generates a new token' do
-        expect(subject).to match(/^#{RunnersTokenPrefixable::RUNNERS_TOKEN_PREFIX}/)
+        expect(subject).to match(/^#{RunnersTokenPrefixable::RUNNERS_TOKEN_PREFIX}/o)
         expect(instance).not_to be_persisted
       end
     end
@@ -475,7 +475,7 @@
 
     context 'token is not set' do
       it 'generates a new token' do
-        expect(subject).to match(/^#{RunnersTokenPrefixable::RUNNERS_TOKEN_PREFIX}/)
+        expect(subject).to match(/^#{RunnersTokenPrefixable::RUNNERS_TOKEN_PREFIX}/o)
         expect(instance).to be_persisted
       end
     end
@@ -486,7 +486,7 @@
       end
 
       it 'generates a new token' do
-        expect(subject).to match(/^#{RunnersTokenPrefixable::RUNNERS_TOKEN_PREFIX}/)
+        expect(subject).to match(/^#{RunnersTokenPrefixable::RUNNERS_TOKEN_PREFIX}/o)
         expect(instance).to be_persisted
       end
     end
diff --git a/spec/services/notes/copy_service_spec.rb b/spec/services/notes/copy_service_spec.rb
index fd8802e66408c16ac57cd3a63d7ae085751e6017..ea47087b88f3fd1baed027d7a24bbaaa199f85d7 100644
--- a/spec/services/notes/copy_service_spec.rb
+++ b/spec/services/notes/copy_service_spec.rb
@@ -146,8 +146,8 @@
           new_note = to_noteable.notes.first
 
           aggregate_failures do
-            expect(note.note).to match(/Simple text with image: #{FileUploader::MARKDOWN_PATTERN}/)
-            expect(new_note.note).to match(/Simple text with image: #{FileUploader::MARKDOWN_PATTERN}/)
+            expect(note.note).to match(/Simple text with image: #{FileUploader::MARKDOWN_PATTERN}/o)
+            expect(new_note.note).to match(/Simple text with image: #{FileUploader::MARKDOWN_PATTERN}/o)
             expect(note.note).not_to eq(new_note.note)
             expect(note.note_html).not_to eq(new_note.note_html)
           end