print $_, m[\s*(\d{0,3}\b)?] ? " contained '$1'" : ' contained nothing that matched' for '','1','1 ',' 1','12',' 12 ','123',' 123',' 123 ','1234','1 2 3'; Use of uninitialized value in concatenation (.) or string at (eval 21) line 1, line 19. contained '' 1 contained '1' 1 contained '1' 1 contained '1' 12 contained '12' 12 contained '12' 123 contained '123' 123 contained '123' 123 contained '123' 1234 contained '' 1 2 3 contained '1'