# define CAT(a, ...) PRIMITIVE_CAT(a, __VA_ARGS__)
# define PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
#
# define SCOPEA CAT(SCOPE_, A)
# define SCOPE_A A
#
# define SCOPEB CAT(SCOPE_, B)
# define SCOPE_B A
#
# region A
# define MACRO 1
# endregion
SCOPEA::MACRO // 1
SCOPEB::MACRO // 1
# if SCOPEA::MACRO
success
# endif
# if SCOPEB::MACRO
success
# endif