diff --git a/compiler/ast/HtmlAttribute/html/generateCode.js b/compiler/ast/HtmlAttribute/html/generateCode.js
index 37aa6ff498..e65ea7a442 100644
--- a/compiler/ast/HtmlAttribute/html/generateCode.js
+++ b/compiler/ast/HtmlAttribute/html/generateCode.js
@@ -121,7 +121,13 @@ module.exports = function generateCode(node, codegen) {
}
if (node.isLiteralValue()) {
- return builder.htmlLiteral(attr(name, value.value));
+ let literalValue = value.value;
+
+ if (literalValue instanceof RegExp) {
+ literalValue = literalValue.source;
+ }
+
+ return builder.htmlLiteral(attr(name, literalValue));
} else if (value != null) {
return generateCodeForExpressionAttr(name, value, escape, codegen);
} else if (argument) {
diff --git a/test/autotests/render/pattern-attr/expected.html b/test/autotests/render/pattern-attr/expected.html
new file mode 100644
index 0000000000..d62fed82ca
--- /dev/null
+++ b/test/autotests/render/pattern-attr/expected.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/test/autotests/render/pattern-attr/template.marko b/test/autotests/render/pattern-attr/template.marko
new file mode 100644
index 0000000000..bec7a5e0f9
--- /dev/null
+++ b/test/autotests/render/pattern-attr/template.marko
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/test/autotests/render/pattern-attr/test.js b/test/autotests/render/pattern-attr/test.js
new file mode 100644
index 0000000000..c4013b3447
--- /dev/null
+++ b/test/autotests/render/pattern-attr/test.js
@@ -0,0 +1 @@
+exports.templateData = {};