Disambiguate the various quoting mechanisms in Julia metaprogramming
<p>Could someone lay out clearly the various quoting mechanisms available for metaprogramming in Julia, and illustrate each one with a minimal example?</p>

<p>So that it is clear which to use in which situation...</p>

<p>As far as I can see there is:</p>

<ul>
<li><code>:(someExpr; maybeMore)</code></li>
<li><code>quote; ...expressions... end;</code> which is almost the same as the above only with line numbers for debug purposes</li>
<li><code>Expr(:quote, x)</code> which (<a href="https://stackoverflow.com/users/3575047/fengyang-wang">according to @totalverb</a>) is equivalent to <code>Meta.quot(x)</code></li>
<li>QuoteNode which (<a href="https://github.com/JuliaLang/julia/issues/6104#issuecomment-37260078" rel="nofollow noreferrer">according to Jeff Bezanson</a>) <em>"is only used in the internal AST representation, not by macros. It's <strong>safe to ignore</strong> unless you work on later stages of the compiler."</em></li>
</ul>

<p>Is this list comprehensive?  Am I missing out any alternate representations?</p>