find(1) . -regextype posix-extended -regex '.*[.]py([.]server)?$' -print
search for files in a directory hierarchy
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
-regextype type
       Changes the regular expression syntax understood by -regex and -iregex tests which occur later  on
       the  command line.  Currently-implemented types are emacs (this is the default), posix-awk, posix-
       basic, posix-egrep and posix-extended.
-regex pattern
       File name matches regular expression pattern.  This is a match on the whole path,  not  a  search.
       For  example,  to  match  a  file named `./fubar3', you can use the regular expression `.*bar.' or
       `.*b.*3', but not `f.*r3'.  The regular expressions  understood  by  find  are  by  default  Emacs
       Regular Expressions, but this can be changed with the -regextype option.
-print True;  print the full file name on the standard output, followed by a newline.   If you are piping
       the output of find into another program and there is the faintest possibility that the files which
       you  are  searching  for  might  contain  a  newline, then you should seriously consider using the
       -print0 option instead of -print.  See the UNUSUAL FILENAMES section  for  information  about  how
       unusual characters in filenames are handled.
source manpages: find