Vertical bar ( | ) is matching with every string

Can anyone explain why the veritcal bar symbol ("|") is matching with every string pattern. What is the solution for the issue.

> grepl("|", "DateNumber")
[1] TRUE
> grepl("|", "Dat")
[1] TRUE
> grepl("|", "t")
[1] TRUE
> grepl("|", "")
[1] TRUE
> grep("|", "Date Number")
[1] 1
> grep("|", "DateNumber")
[1] 1
> grep("|", "Date")
[1] 1

Thanks in Advance.

grepl() uses "Regular Expressions" so "|" is being interpreted as the OR logical operator, not the "pipe" symbol, if you want to match it literally, you have to escape it with \\

grepl("\\|", "DateNumber")
[1] FALSE

Thank you so much @andresrcs