この正規表現は、ほぼすべての有効なタイプの関数(2項演算子、代入関数)と関数名のすべての有効な文字をキャッチすると思いますが、大文字と小文字を区別していない可能性があります。
# lines <- readLines("functions.R")
lines <- c(
"`%in%` <- function",
"foo <- function",
"foo2bar <- function",
"`%in%`<-function",
"foo<-function",
".foo <-function",
"foo2bar<-function",
"`foo2bar<-`<-function",
"`foo3bar<-`=function",
"`foo4bar<-` = function",
"` d d` <- function",
"lapply(x, function)"
)
grep("^`?%?[.a-zA-Z][._a-zA-Z0-9 ]+%?(<-`)?`?\\s*(<-|=)\\s*function", lines)
#> [1] 1 2 3 4 5 6 7 8 9 10
funs <- grep("^`?%?[.a-zA-Z][._a-zA-Z0-9 ]+%?(<-`)?`?\\s*(<-|=)\\s*function", lines, value = TRUE)
gsub("^(`?%?[.a-zA-Z][._a-zA-Z0-9 ]+%?(<-`)?`?).*", "\\1", funs)
#> [1] "`%in%`" "foo " "foo2bar " "`%in%`" "foo"
#> [6] ".foo " "foo2bar" "`foo2bar<-`" "`foo3bar<-`" "`foo4bar<-`"
source()
が、この古いスレッドは興味があるかもしれません。