Hello, To save everyone a little time, how about the following for a comprehensive set (following the \char_if_<whatever> names where available): \def_new:Npn \char_make_escape:N #1 { \char_set_catcode:nn {`#1} {\c_zero} } \def_new:Npn \char_make_begin_group:N #1 { \char_set_catcode:nn {`#1} {\c_one} } \def_new:Npn \char_make_begin_end:N #1 { \char_set_catcode:nn {`#1} {\c_two} } \def_new:Npn \char_make_math_shift:N #1 { \char_set_catcode:nn {`#1} {\c_three} } \def_new:Npn \char_make_alignment:N #1 { \char_set_catcode:nn {`#1} {\c_four} } \def_new:Npn \char_make_end_line:N #1 { \char_set_catcode:nn {`#1} {\c_five} } \def_new:Npn \char_make_parameter:N #1 { \char_set_catcode:nn {`#1} {\c_six} } \def_new:Npn \char_make_math_superscript:N #1 { \char_set_catcode:nn {`#1} {\c_seven} } \def_new:Npn \char_make_math_subscript:N #1 { \char_set_catcode:nn {`#1} {8} } \def_new:Npn \char_make_ignore:N #1 { \char_set_catcode:nn {`#1} {\c_nine} } \def_new:Npn \char_make_space:N #1 { \char_set_catcode:nn {`#1} {\c_ten} } \def_new:Npn \char_make_letter:N #1 { \char_set_catcode:nn {`#1} {\c_eleven} } \def_new:Npn \char_make_other_char:N #1 { \char_set_catcode:nn {`#1} {12} } \def_new:Npn \char_make_active_char:N #1 { \char_set_catcode:nn {`#1} {13} } \def_new:Npn \char_make_comment:N #1 { \char_set_catcode:nn {`#1} {14} } \def_new:Npn \char_make_invalid:N #1 { \char_set_catcode:nn {`#1} {15} } \def_new:Npn \char_make_escape:n #1 { \char_set_catcode:nn {#1} {\c_zero} } \def_new:Npn \char_make_begin_group:n #1 { \char_set_catcode:nn {#1} {\c_one} } \def_new:Npn \char_make_begin_end:n #1 { \char_set_catcode:nn {#1} {\c_two} } \def_new:Npn \char_make_math_shift:n #1 { \char_set_catcode:nn {#1} {\c_three} } \def_new:Npn \char_make_alignment:n #1 { \char_set_catcode:nn {#1} {\c_four} } \def_new:Npn \char_make_end_line:n #1 { \char_set_catcode:nn {#1} {\c_five} } \def_new:Npn \char_make_parameter:n #1 { \char_set_catcode:nn {#1} {\c_six} } \def_new:Npn \char_make_math_superscript:n #1 { \char_set_catcode:nn {#1} {\c_seven} } \def_new:Npn \char_make_math_subscript:n #1 { \char_set_catcode:nn {#1} {8} } \def_new:Npn \char_make_ignore:n #1 { \char_set_catcode:nn {#1} {\c_nine} } \def_new:Npn \char_make_space:n #1 { \char_set_catcode:nn {#1} {\c_ten} } \def_new:Npn \char_make_letter:n #1 { \char_set_catcode:nn {#1} {\c_eleven} } \def_new:Npn \char_make_other_char:n #1 { \char_set_catcode:nn {#1} {12} } \def_new:Npn \char_make_active_char:n #1 { \char_set_catcode:nn {#1} {13} } \def_new:Npn \char_make_comment:n #1 { \char_set_catcode:nn {#1} {14} } \def_new:Npn \char_make_invalid:n #1 { \char_set_catcode:nn {#1} {15} } with \char_make_<whatever>:n taking a number and \char_make_<whatever>:N requiring a single (escaped) token, for example: \char_make_other:N \$ \char_make_letter:n {`\$} -- Joseph Wright