">
+/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.tag.block.any.html */
+/*^^ entity.name.tag.block.any.html */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.attribute-with-value.style.html */
+/* ^^^^^ entity.other.attribute-name.style.html */
+/* ^ punctuation.separator.key-value.html */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.string.html */
+/* ^ string.quoted.double.html punctuation.definition.string.begin.html */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.css.embedded.html */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^^^^^^^^^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^^^^^^^ meta.brackets.js */
+/* ^ punctuation.section.brackets.begin.js */
+/* ^^^^^^ meta.string.js string.quoted.double.js */
+/* ^ punctuation.section.brackets.end.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+/* ^ string.quoted.double.html punctuation.definition.string.end.html */
+/* ^ punctuation.definition.tag.end.html */
diff --git a/tests/syntax_test_questionmark.ejs b/tests/syntax_test_questionmark.ejs
new file mode 100644
index 0000000..403c404
--- /dev/null
+++ b/tests/syntax_test_questionmark.ejs
@@ -0,0 +1,284 @@
+/* SYNTAX TEST "EJS (Q).sublime-syntax" */
+
+ #?>
+/* ^^^^^ text.html - text.html text.html - source */
+/* ^^^^^ meta.embedded.ejs comment.block.ejs - meta.embedded meta.embedded */
+/* ^^^ punctuation.definition.comment.begin.ejs */
+/* ^^ punctuation.definition.comment.end.ejs */
+
+ # Comment tag, no execution, no output ?>
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ comment.block.ejs */
+/* ^^^ punctuation.definition.comment.begin.ejs */
+/* ^^ punctuation.definition.comment.end.ejs */
+
+ ?>
+/* ^^^^ text.html - text.html text.html - source */
+/* ^^^^ meta.embedded.ejs - meta.embedded meta.embedded */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^ punctuation.section.embedded.end.ejs */
+
+ "'Scriptlet' tag, for control-flow, no output" ?>
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^ punctuation.section.embedded.end.ejs */
+
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* ^^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^^ punctuation.section.embedded.end.ejs */
+ = " Outputs the value into the template (escaped)" ?>
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* ^^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^ punctuation.section.embedded.end.ejs */
+
+ - " Outputs the unescaped value into the template" -?>
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* ^^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^^ punctuation.section.embedded.end.ejs */
+
+ ? Literal tags ??>
+/* ^^^^^^^^^^^^^^^^^^^^ - meta.embedded - punctuation */
+
+ if (user) { ?>
+/*^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* <- punctuation.section.embedded.begin.ejs */
+/*^^^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^^^^^^^^^^^ meta.conditional.js */
+/* ^^ keyword.control.conditional.if.js */
+/* ^^^^^^ meta.group.js */
+/* ^ punctuation.section.group.begin.js */
+/* ^^^^ variable.other.readwrite.js */
+/* ^ punctuation.section.group.end.js */
+/* ^^ meta.block.js */
+/* ^ punctuation.section.block.begin.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+
+
= user.name ?>
+/*^^^^ meta.tag.block.any.html */
+/*^ punctuation.definition.tag.begin.html */
+/* ^^ entity.name.tag.block.any.html */
+/* ^ punctuation.definition.tag.end.html */
+/* ^^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* ^^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^^^ variable.other.readwrite.js */
+/* ^ punctuation.accessor.js */
+/* ^^^^ meta.property.object.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+/* ^^^^^ meta.tag.block.any.html */
+/* ^^ punctuation.definition.tag.begin.html */
+/* ^^ entity.name.tag.block.any.html */
+/* ^ punctuation.definition.tag.end.html */
+
+
="class- name() ?>" />
+/* ^^^^^^^^^^ meta.attribute-with-value.html entity.other.attribute-name.html meta.embedded.ejs */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^ variable.other */
+/* ^^ punctuation.section.embedded.end.ejs */
+/* ^^^^^^^ meta.attribute-with-value.html meta.string.html string.quoted.double.html */
+/* ^^^^^^^^^^^^ meta.attribute-with-value.html meta.string.html meta.embedded.ejs */
+/* ^ meta.attribute-with-value.html meta.string.html string.quoted.double.html */
+
+ < =>
+/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.tag.other.html */
+/*^ punctuation.definition.tag.begin.html */
+/* ^^^^^^^ entity.name.tag.other.html meta.embedded.ejs */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^^ source.js.embedded.ejs variable.other.readwrite.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+/* ^^^^^^^^^^^^^^^^^^ meta.attribute-with-value.html */
+/* ^^^^^^^^ entity.other.attribute-name.html meta.embedded.ejs */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^ source.js.embedded.ejs variable.other.readwrite.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+/* ^ punctuation.separator.key-value.html */
+/* ^^^^^^^^^ meta.string.html meta.embedded.ejs */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^^ source.js.embedded.ejs variable.other.readwrite.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+/* ^ punctuation.definition.tag.end.html */
+
+ } ?>
+/*^^^^^ meta.embedded.ejs */
+/* <- punctuation.section.embedded.begin.ejs */
+/*^^^ source.js.embedded.ejs */
+/* ^ punctuation.section.block.end.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+
+ console.log("?> any text "); ?>
+/*^^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* <- punctuation.section.embedded.begin.ejs */
+/*^^^^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^^^^^^ support.type.object.console.js */
+/* ^ punctuation.accessor.js */
+/* ^^^ meta.function-call support.function.console.js */
+/* ^^ meta.function-call meta.group.js */
+/* ^ punctuation.section.group.begin.js */
+/* ^ meta.string.js string.quoted.double.js punctuation.definition.string.begin.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+/* ^^^^^^^^ meta.tag.inline.any.html */
+/* ^ punctuation.definition.tag.begin.html */
+/* ^^^^^^ entity.name.tag.inline.any.html */
+/* ^ punctuation.definition.tag.end.html */
+/* ^^^^^^^^^ meta.tag.inline.any.html */
+/* ^^ punctuation.definition.tag.begin.html */
+/* ^^^^^^ entity.name.tag.inline.any.html */
+/* ^ punctuation.definition.tag.end.html */
+/* ^^^^^^^^ meta.embedded.ejs */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^ source.js.embedded.ejs */
+/* ^^ meta.function-call meta.group.js */
+/* ^ meta.string.js string.quoted.double.js punctuation.definition.string.end.js */
+/* ^ punctuation.section.group.end.js */
+/* ^ punctuation.terminator.statement.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+
+
+/* <- meta.tag.style.end.html punctuation.definition.tag.begin.html */
+/*^^^^^^ meta.tag.style.end.html */
+/*^^^^^ entity.name.tag.style.html */
+/* ^ punctuation.definition.tag.end.html */
+
+">
+/*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.tag.block.any.html */
+/*^^ entity.name.tag.block.any.html */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.attribute-with-value.style.html */
+/* ^^^^^ entity.other.attribute-name.style.html */
+/* ^ punctuation.separator.key-value.html */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.string.html */
+/* ^ string.quoted.double.html punctuation.definition.string.begin.html */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.css.embedded.html */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.embedded.ejs */
+/* ^^ punctuation.section.embedded.begin.ejs */
+/* ^^^^^^^^^^^^^^^^^^^^^^ source.js.embedded.ejs */
+/* ^^^^^^^^ meta.brackets.js */
+/* ^ punctuation.section.brackets.begin.js */
+/* ^^^^^^ meta.string.js string.quoted.double.js */
+/* ^ punctuation.section.brackets.end.js */
+/* ^^ punctuation.section.embedded.end.ejs */
+/* ^ string.quoted.double.html punctuation.definition.string.end.html */
+/* ^ punctuation.definition.tag.end.html */