$(XFOOC) = x_foo.c
$(LIBXFOOC) = lib/x_foo.c
$(MODXFOOC) = x_foo.o
$(XFOOC:%.c=%.o) = x_foo.o
$(XFOOC:x_%.c=y_%.o) = y_foo.o
$(LIBXFOOC:x_%.c=y_%.o) = lib/x_foo.c
$(XFOOC:x_foo.c%=qqq%) = qqq
$(XFOOC:%x_foo.c=%qqq) = qqq
$(XFOOC:%=before_%_after) = before_x_foo.c_after
$(XFOOC:x%.%=a%b%) = x_foo.c
$(XFOOC:x%.%=a%b) = x_foo.c
$(XFOOPERCENTC:x%o%.c=a%b) = a_fob
$(XFOOC:%.c=double_%_%.o) = double_x_foo_%.o
$(XFOOC:%.c=no_percent) = no_percent
$(XFOOC:%=no_percent) = no_percent

Real test loop

$(XFOOC:%.c=%.o) = x_foo.o
$(XFOOC:x_%=y_%) = y_foo.c
$(XFOOC:lib/x_%.c=xyz/y_%.o) = x_foo.c
$(XFOOC:lib/lib/x_%.c=xyz/y_%.o) = x_foo.c
$(XFOOC:%.c=my_%) = my_x_foo
$(LIBXFOOC:%.c=%.o) = lib/x_foo.o
$(LIBXFOOC:x_%=y_%) = lib/x_foo.c
$(LIBXFOOC:lib/x_%.c=xyz/y_%.o) = xyz/y_foo.o
$(LIBXFOOC:lib/lib/x_%.c=xyz/y_%.o) = lib/x_foo.c
$(LIBXFOOC:%.c=my_%) = my_lib/x_foo
$(LIBLIBXFOOC:%.c=%.o) = lib/lib/x_foo.o
$(LIBLIBXFOOC:x_%=y_%) = lib/lib/x_foo.c
$(LIBLIBXFOOC:lib/x_%.c=xyz/y_%.o) = lib/lib/x_foo.c
$(LIBLIBXFOOC:lib/lib/x_%.c=xyz/y_%.o) = xyz/y_foo.o
$(LIBLIBXFOOC:%.c=my_%) = my_lib/lib/x_foo
$(MYLIBXFOOC:%.c=%.o) = my/lib/x_foo.o
$(MYLIBXFOOC:x_%=y_%) = my/lib/x_foo.c
$(MYLIBXFOOC:lib/x_%.c=xyz/y_%.o) = my/lib/x_foo.c
$(MYLIBXFOOC:lib/lib/x_%.c=xyz/y_%.o) = my/lib/x_foo.c
$(MYLIBXFOOC:%.c=my_%) = my_my/lib/x_foo
$(LIBMYXFOOC:%.c=%.o) = lib/my/x_foo.o
$(LIBMYXFOOC:x_%=y_%) = lib/my/x_foo.c
$(LIBMYXFOOC:lib/x_%.c=xyz/y_%.o) = lib/my/x_foo.c
$(LIBMYXFOOC:lib/lib/x_%.c=xyz/y_%.o) = lib/my/x_foo.c
$(LIBMYXFOOC:%.c=my_%) = my_lib/my/x_foo
$(MODXFOOC:%.c=%.o) = x_foo.o
$(MODXFOOC:x_%=y_%) = y_foo.o
$(MODXFOOC:lib/x_%.c=xyz/y_%.o) = x_foo.o
$(MODXFOOC:lib/lib/x_%.c=xyz/y_%.o) = x_foo.o
$(MODXFOOC:%.c=my_%) = x_foo.o
