JS, 26 bytes
c=>'+-,.<>[]'.indexOf(c)+1
x86_16 machine code, 40 bytes
Outputs '0' (false) or '1' (true) on the screen.
bb1f 7cb1 5080 3f00 7409 380f 7409 83c3
01eb f2b0 30eb 02b0 31b4 0ecd 10eb fe2b
2d2c 2e3c 3e5b 5d00
To boot, pad it to 510 bytes with zeros and add 55aa at the end!
This means "uncomment the last two assembly lines and rebuild".
Ungolfed (compilable, compile using nasm -fbin -o is-bf is-bf.asm):
[org 0x7c00]
mov bx, string
mov cl, 'P' ; the character
loop_:
cmp byte [bx], 0
je false
cmp byte [bx], cl
je true
add bx, 1
jmp loop_
false:
mov al, '0'
jmp print
true:
mov al, '1'
print:
mov ah, 0eh
int 10h
jmp $ ; hang forever
string: db "+-,.<>[]", 0
; times 510 - ($-$$) db 0
; dw 0xaa55
main(){}
and all of that in C answers) \$\endgroup\$