Copy files/directories excluding multiple paterns

my directory structure is like below:

basedir\
           p.txt
           q.htm
           r.java
        b\
           abc.htm
           xyz.java
        c\
           p.htm
           q.java
           rst.txt   

my requirement is i want to copy all the files and directories from "basedir" but excluding few patterns, pattern can be a file,directory or regex

for example:
copy all files from "basedir" excluding directory "b" and excluding ".html" from directory "c" and excluding ".java" from "basedir"

i tried "find" using prone but got stuck while specifying multiple patterns.

can anyone pleas help?