W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
This is explained in the documentation I added. It matches the word as-is, without anything in front of it or after it (which * does). Yours (without the ~) currently works because it's presumably the only text inside "data-container-key" and should work flawlessly until you add anything else in there (but why should you, it's a data attribute).
No, this is also part of the documentation. It will match any string containing "node-4", so "node-41", "node-475187591" as well as "my-beautiful-node-400". See: