while (content =~ m%One(.*?)three(.?)five\s+six(.*?)this%gs) { ^^^^^^^ #### $|=1; while ( print("[", pos($content), "]"), $content =~ m%One(.*?)three(.?)five\s+six(.*?)this%gs ) { $var1 = $1 ; $var2 = $2 ; $var3 = $3 ; print "$var1\t$var2\t$var3\n" ; }