Hi Sjaak
There is some confusion from the fact that the various brackets we use tend to serve more than one purpose, just as punctuation like periods might serve several different purposes within a conventional programming language.
Further, as you've discovered, while one can write <a href={{blah}}> or <a href=<<blah>>>, you can't write <a href={{<<blah>>}}/>. The brackets in that situation are special string delimiters, rather than operators as one might expect.
Each type of bracket is associated with a different phenomenon:
* Double square brackets are used to delimit tiddler titles in lists that contain spaces
* Double square brackets are also used to indicate links
* Double curly braces are used to delimit a tiddler title (aka text reference) whose content is to be transcluded
* Triple curly braces are used to delimit a filter expression whose content is to be transcluded
* Double angle brackets are used to delimit a variable name whose content is to be transcluded
Generally, TiddlyWiki's wikitext has two layers:
* At a high level there are a multitude of special wikitext constructions made from symbols. For example, the link construction [[text|link]], ''bold'', or * for bullet lists. These constructions are designed to be concise and memorable, and favour simple syntax over flexibility.
* At a low level, there is a generic HTML element syntax that is also used for widgets, the special custom elements that give TW5 its interactive behaviours. All of those high level constructions are actually just shortcuts for a longer formulation expressed as raw widgets. For example, one can link with [[Hello There]] or <$link to="Hello There">Hello There</$link>. The element/widget syntax is designed to be generic, consistent and flexible.
Best wishes
Jeremy