I'm trying to follow the example given here
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\seq_new:N \l_ae_insertQuotedMatter_seq
\tl_new:N \l_ae_insertQuotedMatter_trash_tl
\NewDocumentCommand{\removeQuotes}{m}
{
\seq_set_split:Nnn \l_ae_insertQuotedMatter_seq {} {#1}
\seq_pop_left:NN \l_ae_insertQuotedMatter_seq \l_ae_insertQuotedMatter_trash_tl
\seq_pop_right:NN \l_ae_insertQuotedMatter_seq \l_ae_insertQuotedMatter_trash_tl
\use:x { \seq_map_function:NN \l_ae_insertQuotedMatter_seq \exp_not:n }
}
\ExplSyntaxOff
\pagestyle{empty}
\begin{document}
\removeQuotes{"Hello World"}
\end{document}
But this does more than I want. The white space is lost.
Two provisos: (1)
I would prefer not to have to write \removeQuotes{"Hello\ World"}. Also, (2) I would prefer not to have to load an entire new package (such as xstring) just to accomplish this one task.
UPDATE
I've also tried something along the lines of:
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\removeQuotes}{m}
{
\tl_reverse:n { \tl_tail:n { \tl_reverse:n { \tl_tail:n { #1 } } } }
}
\ExplSyntaxOff
\pagestyle{empty}
\begin{document}
\removeQuotes{"Hello World"}
\removeQuotes{"Hello\ World"}
\end{document}
But I get the error:
! Argument of \tl_tail:n has an extra }.
<inserted text>
\par
l.12 \removeQuotes{"Hello World"}
?
Any suggestions?

Spaces on both sides of each \meta{item} are ignored. For anitemthat is just a space, that means it disappears. – Joseph Wright Jul 06 '13 at 17:36expl3version of\def\removequotes#1{\@removequotes#1}\def\@removequotes"#1"{#1}? – cgnieder Jul 06 '13 at 17:54