diff --git a/h5p.classes.php b/h5p.classes.php
index <HASH>..<HASH> 100644
--- a/h5p.classes.php
+++ b/h5p.classes.php
@@ -1240,7 +1240,9 @@ class H5PContentValidator {
 
     // Check if string is according to optional regexp in semantics
     if (isset($semantics->regexp)) {
-      $pattern = '|' . $semantics->regexp->pattern . '|';
+      // Note: '|' used as regexp fence, to allow / in actual patterns.
+      // But also escaping '|' found in patterns, so that is valid too.
+      $pattern = '|' . str_replace('|', '\\|', $semantics->regexp->pattern) . '|';
       $pattern .= isset($semantics->regexp->modifiers) ? $semantics->regexp->modifiers : '';
       if (preg_match($pattern, $text) === 0) {
         // Note: explicitly ignore return value FALSE, to avoid removing text
Escape '|' characters in regexp