in reply to regex to detect any non digit and number

You're short many valid characters, but here goes:

@ok = grep !/[^a-zA-Z0-9.:]/, @list;

or

@ok = grep /^[a-zA-Z0-9.:]*\z/, @list;