1> Parse = fun(S) -> {ok, Ts, _} = erl_scan:string(S), {ok, Result} = erl_parse:parse_term(Ts ++ [{dot,1} || element(1, lists:last(Ts)) =/= dot]), Result end.
#Fun<erl_eval.6.99386804>
2> L = "['atom_with_special_CHARACTERS_like@123', 'you mean[like, this%']".
"['atom_with_special_CHARACTERS_like@123', 'you mean[like, this%']"
3> Parse(L).
[atom_with_special_CHARACTERS_like@123,
'you mean[like, this%']
4> Parse(" [foo, bar,\n baz, 'q u ux' ] ").
[foo,bar,baz,'q u ux']
5> Parse("{you, [can, 'write any', term, 123, 3.5, yep]}").
{you,[can,'write any',term,123,3.5,yep]}
6> Parse("even_end_with_dot.").
even_end_with_dot