These two mappings work separately:
```
nnoremap <leader>zs :let @+=substitute(substitute(join(filter(getline(1,'$'),'v:val=~"^source:"'),"\n"),'^\(source:\s*\)\(.*\)$','\2',''),'^\s*\(.*\)$','\1','')<CR><ESC>
nnoremap <leader>zd :let @+=getline('.')<CR>
```

Note on what the codes need to accomplish: the first mapping copies into system clipboard the text following "source: "; the second mapping copies the currently cursored line into system clipboard. I use a clipboard manager (Parcellite) thus I prefer to copy multiple items (separately) from a text file into clipboard.

How do I combine them into a single mapping?

I've tried following [this answer](https://vi.stackexchange.com/a/12102) to produce:
```
nnoremap <leader>zs :let @+=substitute(substitute(join(filter(getline(1,'$'),'v:val=~"^source:"'),"\n"),'^\(source:\s*\)\(.*\)$','\2',''),'^\s*\(.*\)$','\1','') \| let @+=getline('.')<CR>
```
but this doesn't work. What could I be doing wrong?

[UPDATE]

To illustrate, here is a sample text showing [*] where the cursor is currently in:


> Her research also shows about 14% of adults are clinically addicted to
> food, predominantly ultraprocessed foods with higher levels of sugar,
> salt, fat and additives.
> 
> For comparison, 10.5% of Americans age 12 or older were diagnosed with
> alcohol use disorder in 2022, according to the National Survey on Drug
> Use and Health. [*]
> 
> While many people addicted to food will say that their symptoms began
> to worsen significantly in adolescence, some recall a childhood
> focused on ultraprocessed food.
> 
> source:
> https://edition.cnn.com/2024/06/27/health/child-addiction-ultraprocessed-foods-wellness/index.html


After pressing `<leader>zs` in vim, parcellite should show this when accessed:

[![what parcellite should show][1]][1]


  [1]: https://i.sstatic.net/gsP8iwIz.png