正则表达式匹配文件名的问题

正则表达式匹配文件名的问题

小弟最近在写一个序列播放器,需要在打开文件的时候,可以把文件名类似的文件当作一个序列打开。
比如打开/volume/datadisk/img/aaa.003.jpg的时候,可以把aaa.001.jpg至aaa.100.jpg当作一个序列来播放。
现在在文件名解析上碰到问题了,如何提取文件名,序列编号,和扩展名呢?

aaa.3.jpg
aaa3.jpg
aaa003.jpg
aaa.jpg.3
这几种形式都是合法的。
aaa.3.jpg

[a-zA-Z]+\.[\d]+\.[\w]+
aaa3.jpg
aaa003.jpg

[a-zA-Z]+[\d]+\.[\w]+


aaa.jpg.3

[a-zA-Z]+\.[\w]+\.[\d]+

然后分组;
dir.list(path)
aaa.3.jpg和aaa3.jpg能不能能用同一个表达式来表示?
还有aaa.b003.jpg这类的,也需要和前面那几种一起考虑。
能不能从右至左匹配?
最右边的\.[A-Za-z]+一定是文件名,然后[0-9]+一定是编号,之后的[A-Za-z0-9]+\.一定是文件名