How can I extract ligand with neighboring protein atoms from PDB with complex?
You might find RCSB's Guide to Understanding PDB Data and the PDB file format documentation useful. I'll go over some of the information present in PDB files that seems relevant for you, using your example of 10GS.
Ligands are specified in the heterogen section:
HET    VWW  A 210      33                                                       
HET    MES  A 211      12                                                       
HET    VWW  B 210      33                                                       
HET    MES  B 211      12                                                       
HETNAM     VWW L-GAMMA-GLUTAMYL-S-BENZYL-N-[(S)-CARBOXY(PHENYL)                 
HETNAM   2 VWW  METHYL]-L-CYSTEINAMIDE                                          
HETNAM     MES 2-(N-MORPHOLINO)-ETHANESULFONIC ACID                             
FORMUL   3  VWW    2(C23 H27 N3 O6 S)                                           
FORMUL   4  MES    2(C6 H13 N O4 S) 

These records tell you the identity of the ligands that are bound to the protein (VWW and MES), how many are bound (4 in total), the chemical name (in the HETNAM record) and chemical formula (FORMUL record). The HET record also gives the number of associated HETATM records (33 for VWW and 12 for MES). Here are the first five HETATM records for VWW of chain A:
HETATM 3265  N   VWW A 210      15.088  10.798  23.547  1.00 14.90           N  
HETATM 3266  CA  VWW A 210      15.010   9.987  24.792  1.00 20.92           C  
HETATM 3267  C   VWW A 210      16.115   8.924  24.830  1.00 21.55           C  
HETATM 3268  O   VWW A 210      16.520   8.515  25.940  1.00 17.16           O  
HETATM 3269  CB  VWW A 210      13.635   9.327  24.908  1.00 14.23           C  

Each HETATM record corresponds to an atom in the ligand and gives the chemical coordinates for each on the X, Y and Z axes. For example, the first record specifies a nitrogen atom at coordinates (15.088, 10.798, 23.547).
The connectivity (ie covalent bonding) between atoms in a ligand is specified in CONECT records. Here are the first five from the PDB file:
CONECT 3265 3266                                                                
CONECT 3266 3265 3267 3269                                                      
CONECT 3267 3266 3268 3273                                                      
CONECT 3268 3267                                                                
CONECT 3269 3266 3270   

This tells you that atom 3265 (the first nitrogen in the HETATM records above) is bonded to atom 3266 (a carbon). Atom 3266 is bonded to atoms 3265, 3267, 3269. Et cetera...
The atoms of the protein are specified in ATOM records. Like the HETATM record, these records give some identifying information (atom serial number and type, residue name and number, etc) as well as the coordinates in 3D space. For your purposes, it sounds like you can just loop through the atoms of the protein and find the ones which are within some threshold distance of an atom in a ligand (or the geometric centre of the ligand). However, this PDB file does already contain some information about the binding sites for these 4 ligands in the SITE records (here are the first four corresponding to site AC1):
SITE     1 AC1 15 TYR A   7  PHE A   8  ARG A  13  TRP A  38                    
SITE     2 AC1 15 LYS A  44  GLY A  50  GLN A  51  LEU A  52                    
SITE     3 AC1 15 PRO A  53  GLN A  64  SER A  65  TYR A 108                    
SITE     4 AC1 15 HOH A 229  HOH A 303  ASP B  98                           

The SITE records also have corresponding REMARK 800 records (which are given in the question). For example, site AC1 is described as BINDING SITE FOR RESIDUE VWW A 210 as identified by SOFTWARE. So in this case, these SITE records are a list of residues that make up the binding site of their respective ligands.
You may want to be somewhat wary of these SITE records because (1) as far as I know they are not mandatory records in a PDB file and therefore may not always exist, and (2) it is not entirely clear how they are generated. In this case they are software generated... but which software... or what algorithm? I have previously looked through the SITE record of a binding site in a protein I am very familiar with and noted some conspicuous absences from the list of residues, so take that for what it's worth.