Well, ya... I guess I did the equivalent (though not so concise) method after sending the first email to roundtable... echo APP-AM005-a | sed 's/[[:alpha:]]//g;s/[[:punct:]]//g' I like the search inversion though Sean. Much cleaner! So the problem I have is solved, thanks Sean. But why won't my original method work? The [[:digit:]]* should have matched all the consecutive digits shouldn't it? And then the ( ) brackets should place the match into buffer 1. Steve IBM Global Services sjm@ca.ibm.com (204)792-3245 ----- Forwarded by Steve Moffat/CanWest/IBM on 05/09/2007 04:08 PM ----- "Sean Walberg" <sean@ertw.com> Sent by: To swalberg@gmail.co Steve Moffat/CanWest/IBM@IBMCA m cc roundtable@muug.mb.ca Subject 05/09/2007 04:05 Re: [RndTbl] Oh great RE master PM # echo BUILD-AM005-a | sed 's/[^0-9]//g' 005 Sean On 5/9/07, Steve Moffat <Steve.Moffat@ca.ibm.com > wrote: Hi All; I've been trying to write a sed function to return only a numeric portion of a string, but can't seem to get it working. The input is a single string of letters and numbers, with the numbers always consecutive. For example: BUILD-AM005-a I want to get the 005 out of this string. echo BUILD-AM005-a | sed 's/.*\([[:digit:]]\).*/\1/g' will return the digit 5. This is good! So I add an asterisk to try to match multiple digits like: echo BUILD-AM005-a | sed 's/.*\([[:digit:]]*\).*/\1/g' and instead of returning 005, it doesn't match anything, so returns nothing. Can any of you RE maters help me out? Steve Moffat IBM Global Services sjm@ca.ibm.com (204)792-3245 _______________________________________________ Roundtable mailing list Roundtable@muug.mb.ca http://www.muug.mb.ca/mailman/listinfo/roundtable -- Sean Walberg <sean@ertw.com> http://ertw.com/