In a large pot or Dutch oven, heat the olive oil over medium-high heat. Add the carrots, celery, onion, salt, and pepper and cook until tender and the onion is translucent, about 5 minutes.
Add the garlic, sun-dried tomatoes, oregano, rosemary, paprika, and red pepper flakes and cook until fragrant, about 1 minute.
Add the white wine (if using) and cook, stirring, until the liquid is reduced, about 1 minute.
Add the chicken broth and beans and bring to a boil. Reduce to a low simmer and cook, uncovered, for 20 minutes.
Meanwhile, make the breadcrumb topping. In a small skillet, melt the butter. Add the panko and cook, stirring, until golden brown, about 2 minutes. Transfer to a medium bowl and stir in the parsley, lemon zest, and ¼ cup of the parmesan. Set aside.
Carefully ladle out 2 cups of the soup and transfer to a blender. Blend until smooth then transfer back to the pot.
Return the soup to a simmer, stir in the remaining ¼ cup parmesan, and cook until slightly thickened, about 5 minutes.
Turn off the heat and add the spinach and lemon juice, stirring until the spinach is wilted.
Ladle the soup into bowls and serve topped with the breadcrumb mixture.