Extract all the string between 2 patterns:
Input:
test.output0    testx.output1    output3    testds.output2(\t)
Output:
output0    output1    ouput3   output2
Note: (" ") is the tab character.
Extract all the string between 2 patterns:
Input:
test.output0    testx.output1    output3    testds.output2(\t)
Output:
output0    output1    ouput3   output2
Note: (" ") is the tab character.
 
    
     
    
    You may try:
\.\w+$
Explanation of the above regex:
\. - Matches . literally. If you do not want . to be included in your pattern; please use (?<=\.) or simply remove ..\w+ - Matches word character [A-Za-z0-9_] 1 or more time.$ - Represents end of the line.You can find the demo of the regex in here.
According to your latest edit; this might be helpful.
.*?\.?(\w+)(?=\t)
Explanation:
.*? - Match everything other than new line lazily.\.? - Matches . literally zero or one time.(\w+) - Represents a capturing group matching the word-characters one or more times.(?=\t) - Represents a positive look-ahead matching tab.$1  - For the replacement part $1 represents the captured group and a white-space to separate the output as desired by you. Or if you want to restore tab then use the replacement $1\t.Please find the demo of the above regex in here.
Try matching on the following pattern:
Find: (?<![^.\s])\w+(?!\S)
Here is an explanation of the above pattern:
(?<![^.\s])  assert that what precedes is either dot, whitespace, or the start of the input
\w+          match a word
(?!\S)       assert that what follows is either whitespace of the end of the input
