Value Filldown ROUTER_ID (\S+)
Value Filldown LOCAL_AS (\d+)
Value Filldown VRF ([A-Za-z0-9\-_]+)
Value Required BGP_NEIGH (\d+?\.\d+?\.\d+?\.\d+?)
Value NEIGH_AS (\d+)
Value MSG_RCVD (\d+)
Value MSG_SENT (\d+)
Value IN_QUEUE (\d+)
Value OUT_QUEUE (\d+)
Value UP_DOWN (\S+)
Value STATE_PFXRCD (\S+?\s+\S+?|\S+?)

Start
  ^BGP.+VRF\s+${VRF},?
  ^BGP\s+router\s+identifier\s+${ROUTER_ID},\s+[Ll]ocal\s+[Aa][Ss]\s+number\s+${LOCAL_AS}
  ^Neighbor\s+V\s+AS\s+MsgRcvd\s+MsgSent\s+TblVer\s+InQ\s+OutQ\s+Up/Down\s+State/PfxRcd\s*$$
  ^${BGP_NEIGH}\s+\d+\s+${NEIGH_AS}\s+${MSG_RCVD}\s+${MSG_SENT}\s+\d+\s+${IN_QUEUE}\s+${OUT_QUEUE}\s+${UP_DOWN}\s+${STATE_PFXRCD}\s*$$ -> Record
  ^${BGP_NEIGH}\s+\d+\s+${NEIGH_AS}
  ^\s+${MSG_RCVD}\s+${MSG_SENT}\s+\d+\s+${IN_QUEUE}\s+${OUT_QUEUE}\s+${UP_DOWN}\s+${STATE_PFXRCD}\s*$$ -> Record
  # ignoring all lines ending in bytes of memory
  ^.*\s+bytes\s+of\s+memory
  ^BGP\s+table\s+version
  ^\d+\s+network\s+entries
  ^BGP\s+attribute\s+entries
  ^BGP\s+community\s+entries
  ^\d+\s+(received|identical)
  ^BGP\s+activity
  ^\d+\s+networks\s+peaked\s+at
  ^\s*$$
  ^. -> Error