2 typo
source | link

To answer the question in the title which I interpret as meaning: report the whitespace-delimited words that do not start with an alphanumeric or underscore (the \w in some regexp engines), you could do with GNU grep provided it's built with PCRE support:

grep -Po '(?<!\S)[^\w\s]\S*'

That is a character other (^) than a word one (\w) or whitespace one (\s) provided it's not precentedpreceded ((?<!...)) by a non-whitespace (\S), and followed by any number (*) of non-whitespace (\S).

Which on your input returns:

-a
--verbose

To answer the question in the title which I interpret as meaning: report the whitespace-delimited words that do not start with an alphanumeric or underscore (the \w in some regexp engines), you could do with GNU grep provided it's built with PCRE support:

grep -Po '(?<!\S)[^\w\s]\S*'

That is a character other (^) than a word one (\w) or whitespace one (\s) provided it's not precented ((?<!...)) by a non-whitespace (\S), and followed by any number (*) of non-whitespace (\S).

Which on your input returns:

-a
--verbose

To answer the question in the title which I interpret as meaning: report the whitespace-delimited words that do not start with an alphanumeric or underscore (the \w in some regexp engines), you could do with GNU grep provided it's built with PCRE support:

grep -Po '(?<!\S)[^\w\s]\S*'

That is a character other (^) than a word one (\w) or whitespace one (\s) provided it's not preceded ((?<!...)) by a non-whitespace (\S), and followed by any number (*) of non-whitespace (\S).

Which on your input returns:

-a
--verbose
1
source | link

To answer the question in the title which I interpret as meaning: report the whitespace-delimited words that do not start with an alphanumeric or underscore (the \w in some regexp engines), you could do with GNU grep provided it's built with PCRE support:

grep -Po '(?<!\S)[^\w\s]\S*'

That is a character other (^) than a word one (\w) or whitespace one (\s) provided it's not precented ((?<!...)) by a non-whitespace (\S), and followed by any number (*) of non-whitespace (\S).

Which on your input returns:

-a
--verbose