I have the following sample text
[Item 1](./path/notes.md)
[Item 2](./path)
[Item 3](./path/notes.md)
[Item 4](./path)
When I applied the following regex \[(.*)\].*(?!notes\.md).*\), I expected the following output when I printed the first capture group
Item 2
Item 4
but what I ended up getting was
Item 1
Item 2
Item 3
Item 4
which, to me, seems that the negative lookahead portion, (?!notes\.md), was being ignored for some reason, so the regex was matching the whole string.
What is really confusing me, is that a positive lookahead works as I would expect. For example using \[(.*)\].*(?=notes\.md).*\) returns the following when printing the first capture group
Item 1
Item 3
which makes sense, so I am really confused as to why the negative lookahead is not functioning properly.