anchor.diff:                  selectElements' FilterLevel.Root selectedNodes t
   
               | OpenAttribute _ :: AttributeName(_, name) :: AttributeContains _ :: AttributeValue(_, value) :: CloseAttribute _ :: t ->
  -                let selectedNodes = filterByAttr level acc name (fun v -> v.ToLowerInvariant().Contains(value.ToLowerInvariant()))
  +                let selectedNodes = filterByAttr level acc name (containsIgnoreCase value)
                   selectElements' FilterLevel.Root selectedNodes t
                   
               | OpenAttribute _ :: AttributeName(_, name) :: AttributeContainsWord _ :: AttributeValue(_, value) :: CloseAttribute _ :: t ->
  -                let selectedNodes = filterByAttr level acc name (fun v -> v.Split(whiteSpaces) |> Seq.exists(fun word -> word.ToLowerInvariant() = value.ToLowerInvariant()))
  +                let selectedNodes = filterByAttr level acc name (fun v -> v.Split(whiteSpaces) |> Array.exists (equalsIgnoreCase value))
                   selectElements' FilterLevel.Root selectedNodes t
   
               | OpenAttribute _ :: AttributeName(_, name) :: AttributeNotEqual _ :: AttributeValue(_, value) :: CloseAttribute _ :: t ->
  
positive.code: 
          member public x.Tokenize(pCssSelector:string) =
              cssSelector <- pCssSelector
              source <- Array.toList(cssSelector.ToCharArray())
              charCount <- source.Length
              tokenize()
  
  
negative.code:                     None
  
          let (|TokenStr|_|) (s:string) x  =
              let chars = s.ToCharArray() |> Array.toList
  
              let rec equal x s =
                  match x, s with
  