From my understanding when using regex1|regex2 the matching process tries each alternative in turn, from left to right, and the first one that succeeds is used.
When im trying to extract the name from those examples:
A) name.can.be.different.20.03.2009.boom
B) name.can.be.different.20.03.09.boom
C) name_can_be_different_2009_boom
by using:
sed 's/\(.*\)[._]\([0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]\|[0-9][0-9].[0-9][0-9].[0-9][0-9]\|[0-9][0-9][0-9][0-9]\)[._]\(.*\)/\1/'
It gives:
A) name.can.be.different.20.03 (WRONG)
B) name.can.be.different (GOOD)
C) name_can_be_different (GOOD)
Why does it fail on A) ? By my order of regex pattern it's suppose to match on
[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9] but it doesn't ?