Change:
test('Should detect basic http links', async () => { const links = await getLinksForFile('a [b](https://example.com) c'); <del> assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 6, 0, 25)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 6, 0, 25) ]); </ins> }); test('Should detect basic workspace links', async () => { { const links = await getLinksForFile('a [b](./file) c'); <del> assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 6, 0, 12)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 6, 0, 12) ]); </ins> } { const links = await getLinksForFile('a [b](file.png) c'); <del> assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 6, 0, 14)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 6, 0, 14) ]); </ins> } }); test('Should detect links with title', async () => { const links = await getLinksForFile('a [b](https://example.com "abc") c'); <del> assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 6, 0, 25)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 6, 0, 25) ]); </ins> }); test('Should handle links with escaped characters in name (#35245)', async () => { const links = await getLinksForFile('a [b]](./file)'); <del> assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 8, 0, 14)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 8, 0, 14) ]); </ins> }); test('Should handle links with balanced parens', async () => { { const links = await getLinksForFile('a [b](https://example.com/a()c) c'); <del> assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 6, 0, 30)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 6, 0, 30) ]); </ins> } { const links = await getLinksForFile('a [b](https://example.com/a(b)c) c'); <del> assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 6, 0, 31)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 6, 0, 31) ]); </ins> } { // #49011 const links = await getLinksForFile('[A link](http://ThisUrlhasParens/A_link(in_parens))'); <del> assert.strictEqual(links.length, 1); const [link] = links; assertRangeEqual(link.range, new vscode.Range(0, 9, 0, 50)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 9, 0, 50) ]); </ins> } }); test('Should handle two links without space', async () => { const links = await getLinksForFile('a ([test](test)[test2](test2)) c'); <del> assert.strictEqual(links.length, 2); const [link1, link2] = links; assertRangeEqual(link1.range, new vscode.Range(0, 10, 0, 14)); assertRangeEqual(link2.range, new vscode.Range(0, 23, 0, 28)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 10, 0, 14), new vscode.Range(0, 23, 0, 28) ]); </ins> }); test('should handle hyperlinked images (#49238)', async () => { { const links = await getLinksForFile('[![alt text](image.jpg)](https://example.com)'); <del> assert.strictEqual(links.length, 2); const [link1, link2] = links; assertRangeEqual(link1.range, new vscode.Range(0, 13, 0, 22)); assertRangeEqual(link2.range, new vscode.Range(0, 25, 0, 44)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 13, 0, 22), new vscode.Range(0, 25, 0, 44) ]); </ins> } { const links = await getLinksForFile('[![a]( whitespace.jpg )]( https://whitespace.com )'); <del> assert.strictEqual(links.length, 2); const [link1, link2] = links; assertRangeEqual(link1.range, new vscode.Range(0, 7, 0, 21)); assertRangeEqual(link2.range, new vscode.Range(0, 26, 0, 48)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 7, 0, 21), new vscode.Range(0, 26, 0, 48) ]); </ins> } { const links = await getLinksForFile('[![a](img1.jpg)](file1.txt) text [![a](img2.jpg)](file2.txt)'); <del> assert.strictEqual(links.length, 4); const [link1, link2, link3, link4] = links; assertRangeEqual(link1.range, new vscode.Range(0, 6, 0, 14)); assertRangeEqual(link2.range, new vscode.Range(0, 17, 0, 26)); assertRangeEqual(link3.range, new vscode.Range(0, 39, 0, 47)); assertRangeEqual(link4.range, new vscode.Range(0, 50, 0, 59)); </del> <ins> assertLinksEqual(links, [ new vscode.Range(0, 6, 0, 14), new vscode.Range(0, 17, 0, 26), new vscode.Range(0, 39, 0, 47), new vscode.Range(0, 50, 0, 59), ]); </ins> } });

Discussion:
Does this issue occur when all extensions are disabled?: Yes VS Code Version: 1.61.2 OS Version: macOS Big Sur Steps to Reproduce: a new markdown file. ! But according to it isn't necessary to escape spaces when the text is enclosed in :
Removing help wanted since this is a bit more complicated than anticipated
Thanks!