Since you did not post any example of input or output, but rather just the not working regular expression, this is only a guess:
Drop the . (dot) in front of it. If that does not fix it, please, tell us in what way is not working, and show us some input and output.
Please use code tags for commands/codes/Input you have shown in your posts as per forum rules. Also please do show us the sample input with expected output which will help us to understand your requirement in better manner, based on some assumptions following may help you in same, not sure is there any specific reason for using sed by you, why don't you give a try to simple grep too.
Let's say we have following Input_file:
cat Input_file
TestSingha-fA-F0-9test2
a-fA-F0-91233445667
test12334567
R. Singh is a bad boy.
Iron man is my hero.
Love you UNIX.com
a-fA-F0-9
Following will be the command then for same.
grep "a-fA-F0-9" Input_file > Output_file
You will see the output in Output_file as follows.
Yes, initially, I did not notice it, neither, when you posted the command embedded in the post text. Now that you corrected it, adding code tags, it looks obvious. Posting the input and desired output helps to test as well.
What Aia suggested works with the sample input, and may be exactly what is wanted (a string of 32 or more hex digits appearing anywhere on an input line without regard to what other characters may be present on the line). But, what was requested in post #4 (Onlye(sic) the lines that are composed with hexadecimal characters.) would be something more like:
sed -n '/^[a-f0-9A-F]\{1,\}$/p' input
which prints lines that contain one or more hex digits that do not contain any characters that are not hex digits.
If you only want lines that contain exactly 32 hex digits and nothing else, that would be: