On Sep 1, 2008, at 5:11 AM, Patrick He wrote: > Additionally, you can use pattern "(.|\n)" if you want to match all > characters including "\n" in single line mode. You can, but alternation is more work for the regex engine: #!/usr/bin/env ruby -wKU require "benchmark" DATA = ("a".."z").to_a.join TESTS = 100_000 Benchmark.bmbm do |results| results.report("/./m:") { TESTS.times { DATA.scan(/./m) } } results.report("/(?m:.)/:") { TESTS.times { DATA.scan(/(?m:.)/) } } results.report("/(.|\\n)/:") { TESTS.times { DATA.scan(/(.|\n)/) } } end # >> Rehearsal --------------------------------------------- # >> /./m: 3.490000 0.100000 3.590000 ( 3.617568) # >> /(?m:.)/: 3.560000 0.100000 3.660000 ( 3.687604) # >> /(.|\n)/: 5.010000 0.120000 5.130000 ( 5.190762) # >> ----------------------------------- total: 12.380000sec # >> # >> user system total real # >> /./m: 3.510000 0.110000 3.620000 ( 3.636716) # >> /(?m:.)/: 3.560000 0.100000 3.660000 ( 3.671196) # >> /(.|\n)/: 5.030000 0.120000 5.150000 ( 5.154031) __END__ James Edward Gray II