m/ ^ # beginning of line (?:\d?\d?\d\.\d?\d?\d\.\d?\d?\d\.\d?\d?\d) # pseudo IP address [ ] # delimiter (?:\S+|-)[ ](?:\S+|-) # second and third fields... [ ] # delimiter \[ (?:[12][0-9]|3[01]|[1-9]) # date 10-19,20-29,30,31,1-9 / (?:J(?:un|ul|an)|Feb|Ma(?:r|y)|A(?:pr|ug)|Sep|Oct|Nov|Dev) # month / \d\d\d\d # year : (?:[01][0-9]|2[0-3]):(?:[0-5][0-9]):(?:[0-5][0-9]) # time \] [ ] # delimiter \d\d\d # HTTP code [ ] # delimiter (?:\d+|-) # bytes [ ] # delimiter "[^"]+" # HTTP request [ ] # delimiter "(?:[^"]+|-)" # referer $ # end /x;