-&= => subdir
-&_ => subdir_
-&/ => subdir/
-&CAPS => subdir_CAPS
-&lc => subdir/lc
+&CAPS => subdir_CAPS or TOP_CAPS
+&lc => subdir/lc or lc
-&.= &._ &./ &.CAPS &.lc => $(top_srcdir)/subdir
-&:= &:_ &:/ &:CAPS &:lc => $(abs_top_srcdir)/subdir
-& thing thing => like &thing &thing (until EOL)
+&_ => subdir_ or TOP_
+&/ => subdir/ or nothing
+&=_ => subdir or TOP
+&=/ => subdir or .
+&^ => $(top_srcdir)/subdir or $(top_srcdir)
+&~ => $(abs_top_srcdir)/subdir or $(abs_top_srcdir)
-&& => &
+&& => &&
+\& => &
-&! spc disables & *until* EOL
+& thing thing... & => each thing prefixed by &/ &^ &~ resp
+& ^ thing thing... & each thing is any non-ws
+& ~ thing thing... & & may be omitted before EOL or before \EOL
+ other &'s not recognised
+
+CAPS is [A-Z][0-9_A-Z]*(?!\w)
+lc is [a-z][-+,0-9_a-z]*(?!\w)
+
+&!<spaces or tabs> disables & *until* EOL (and disappears)
&!STUFF STUFF is recognised instead of & (beyond EOL)
- STUFF is either all punct or all alphanum (incl _)
+ STUFF is either all ASCII punct or all ASCII alphanum (incl _)
any lwsp after STUFF is discarded too
+
eg notably
STUFF!& now & is recognised instead (ie back to normal)
STUFFSTUFF STUFF
eg
&!@@@ @@@ is recognised instead of &
@@@!& go back to &
+
+&TARGETS[_things] is handled specially
+ must be spelled precisely this way
+ if no _things, means _all
+
+Also, `all' is weird in that it is present even if not specified