Blob Blame History Raw
module Pass_nocase =

let lns1 =
  let re = /[a-z]+/i - "Key" in
  [ label "1" . store re ] | [ label "2" . store "Key" ]

test lns1 get "Key" = { "2" = "Key" }
test lns1 get "key" = { "1" = "key" }
test lns1 get "KEY" = { "1" = "KEY" }
test lns1 get "KeY" = { "1" = "KeY" }

let lns2 =
  let re = /[A-Za-z]+/ - /Key/i in
  [ label "1" . store re ] | [ label "2" . store /Key/i ]

test lns2 get "Key" = { "2" = "Key" }
test lns2 get "key" = { "2" = "key" }
test lns2 get "KEY" = { "2" = "KEY" }
test lns2 get "KeY" = { "2" = "KeY" }

let lns3 =
  let rx = /type/i|/flags/i in
  [ key rx . del "=" "=" . store /[0-9]+/ ]

test lns3 get "FLAGS=1" = { "FLAGS" = "1" }